{"id":1076,"date":"2025-06-04T10:11:44","date_gmt":"2025-06-04T09:11:44","guid":{"rendered":"https:\/\/workboot.fr\/ciela\/?page_id=1076"},"modified":"2026-02-16T12:51:00","modified_gmt":"2026-02-16T11:51:00","slug":"gcc","status":"publish","type":"page","link":"https:\/\/workboot.fr\/ciela\/gcc\/","title":{"rendered":"gcc"},"content":{"rendered":"\n<nav aria-label=\"Table des mati\u00e8res\" class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#gcc-gnu-compiler-collection\">GCC (GNU Compiler Collection)<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#gnu-gnu-s-not-unix\">GNU (GNU&rsquo;s Not Unix)<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#pourquoi-gnu-s-not-unix\">\ud83d\udd01 Pourquoi \u00ab\u00a0GNU&rsquo;s Not Unix\u00a0\u00bb ?<\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#objectif-du-projet-gnu\">\ud83d\udd27 Objectif du projet GNU :<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#valeurs-fondamentales\">\ud83d\udd11 Valeurs fondamentales :<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#a-retenir\">\ud83e\udde0 \u00c0 retenir :<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#option-wall-dans-gcc\">\ud83d\udd14 Option -Wall dans gcc<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/#ansi-american-national-standards-institute\">\ud83d\udcd8 ANSI : American National Standards Institute<\/a><\/li><\/ol><\/nav>\n\n\n\n<h3 id=\"gcc-gnu-compiler-collection\" class=\"wp-block-heading\"><strong>GCC (GNU Compiler Collection)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>GCC<\/strong> est un <strong>compilateur<\/strong> d\u00e9velopp\u00e9 par le projet GNU. Il permet de <strong>traduire du code source \u00e9crit en langage C (et d&rsquo;autres langages)<\/strong> en code machine ex\u00e9cutable par un ordinateur. Il est <strong>libre<\/strong>, <strong>open source<\/strong> et largement utilis\u00e9 dans les syst\u00e8mes Unix\/Linux.<\/p>\n\n\n\n<h3 id=\"gnu-gnu-s-not-unix\" class=\"wp-block-heading\"><strong>GNU (GNU&rsquo;s Not Unix)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>GNU<\/strong> est un projet lanc\u00e9 en <strong>1983<\/strong> par <strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\"><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Richard_Stallman\">Richard Stallman<\/a><\/mark><\/strong> dans le but de cr\u00e9er un <strong>syst\u00e8me d&rsquo;exploitation libre<\/strong>, compatible avec Unix, mais <strong>compos\u00e9 uniquement de logiciels libres<\/strong>.<\/p>\n\n\n\n<h4 id=\"pourquoi-gnu-s-not-unix\" class=\"wp-block-heading\">\ud83d\udd01 Pourquoi \u00ab\u00a0GNU&rsquo;s Not Unix\u00a0\u00bb ?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Le nom <strong>GNU<\/strong> est un acronyme r\u00e9cursif (un jeu de mots) qui signifie <strong>\u00ab\u00a0GNU&rsquo;s Not Unix\u00a0\u00bb<\/strong> \u2014 autrement dit, <strong>\u00ab\u00a0GNU n&rsquo;est pas Unix\u00a0\u00bb<\/strong>. Cela montre que le projet s&rsquo;inspire de Unix mais <strong>n\u2019en utilise aucun composant propri\u00e9taire<\/strong>.<\/p>\n\n\n\n<h3 id=\"objectif-du-projet-gnu\" class=\"wp-block-heading\">\ud83d\udd27 Objectif du projet GNU :<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cr\u00e9er un syst\u00e8me d&rsquo;exploitation complet <strong>100 % libre<\/strong>, comprenant :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Un noyau (\u00e0 l\u2019origine : <strong>Hurd<\/strong>, mais plus souvent associ\u00e9 au noyau <strong>Linux<\/strong>)<\/li>\n\n\n\n<li>Un compilateur (<strong>GCC<\/strong>)<\/li>\n\n\n\n<li>Un \u00e9diteur de texte (<strong>Emacs<\/strong>)<\/li>\n\n\n\n<li>Un shell (<strong>Bash<\/strong>)<\/li>\n\n\n\n<li>Des biblioth\u00e8ques syst\u00e8me (<strong>glibc<\/strong>), etc.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"valeurs-fondamentales\" class=\"wp-block-heading\">\ud83d\udd11 Valeurs fondamentales :<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Libert\u00e9 d\u2019utiliser<\/strong> le logiciel<\/li>\n\n\n\n<li><strong>Libert\u00e9 d\u2019\u00e9tudier<\/strong> le fonctionnement du logiciel<\/li>\n\n\n\n<li><strong>Libert\u00e9 de modifier<\/strong> le logiciel<\/li>\n\n\n\n<li><strong>Libert\u00e9 de partager<\/strong> le logiciel<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ces libert\u00e9s sont \u00e0 la base de la <strong>licence GNU GPL<\/strong> (General Public License), qui garantit que les logiciels restent libres.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"a-retenir\" class=\"wp-block-heading\">\ud83e\udde0 \u00c0 retenir :<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GNU<\/strong> est le socle de nombreux syst\u00e8mes d\u2019exploitation appel\u00e9s \u00e0 tort \u00ab\u00a0Linux\u00a0\u00bb \u2014 le nom plus exact serait <strong>GNU\/Linux<\/strong> (le syst\u00e8me GNU utilisant le noyau Linux).<\/li>\n\n\n\n<li><strong>GCC<\/strong>, que tu m\u2019as demand\u00e9 plus t\u00f4t, fait partie du projet GNU.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Souhaites-tu que je t\u2019explique aussi la diff\u00e9rence entre <strong>GNU<\/strong>, <strong>Linux<\/strong>, et <strong>GNU\/Linux<\/strong> ?<\/p>\n\n\n\n<h2 id=\"usage-de-gcc\" class=\"wp-block-heading\">usage de gcc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">gcc source.c -o executable<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">man gcc <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GCC(1)                                GNU                               GCC(1)\n\nNAME\n       gcc - GNU project C and C++ compiler\n\nSYNOPSIS\n       gcc &#91;-c|-S|-E] &#91;-std=standard]\n           &#91;<mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">-g<\/mark>] &#91;-pg] &#91;-Olevel]\n           &#91;-Wwarn...] &#91;-Wpedantic]\n           &#91;-Idir...] &#91;-Ldir...]\n           &#91;-Dmacro&#91;=defn]...] &#91;-Umacro]\n           &#91;-foption...] &#91;-mmachine-option...]\n           &#91;<mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">-o<\/mark> outfile] &#91;@file] infile...\n\n       Only the most useful options are listed here; see below for the\n       remainder.  g++ accepts mostly the same options as gcc.\n\nDESCRIPTION\n       When you invoke GCC, it normally does preprocessing, compilation,\n       assembly and linking.  The \"overall options\" allow you to stop this\n       process at an intermediate stage.  For example, the -c option says not\n       to run the linker.  Then the output consists of object files output by\n       the assembler.\n Manual page gcc(1) line 1 (press h for help or q to quit)\n<\/code><\/pre>\n\n\n\n<h2 id=\"utilisation\" class=\"wp-block-heading\">Utilisation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Exemple avec un le code bonjour le monde !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">fichier : bonjour.c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#00d084\" class=\"has-inline-color\">\/********************************\n * Projet : Bonjour le monde !\n * Auteur : Leprof\n * Date   : 04\/06\/2025\n ********************************\/<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff6900\" class=\"has-inline-color\">#include &lt;stdlib.h&gt;\n#include &lt;stdio.h&gt;\n<\/mark>\n<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-ast-global-color-1-color\">int main (int argc, char **argv)\n{\n\tprintf (\"Bonjour le monde \\n\");\n\n\treturn EXIT_SUCCESS;\n}<\/mark>\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#00d084\" class=\"has-inline-color\">En vert<\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#00d084\" class=\"has-inline-color\">c&rsquo;est du commentaire , mais on ne cessera pas de dire m\u00eame si fonctionnellement c&rsquo;est effectivement non n\u00e9cessaire , humainement c&rsquo;est important m\u00eame les IA nous en mettent ! Ici les donn\u00e9es de base du code &#8230; \/*  et  *\/   <\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ff6900\" class=\"has-inline-color\">En orange <\/mark><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Sous Linux, les <strong>librairies syst\u00e8me en C<\/strong> sont repr\u00e9sent\u00e9es par des <strong>fichiers d&rsquo;en-t\u00eate (<code>.h<\/code>)<\/strong>, situ\u00e9s dans des r\u00e9pertoires comme <strong><code>\/usr\/include<\/code><\/strong>.<br>Ces fichiers d\u00e9finissent :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>des <strong>interfaces de programmation<\/strong> (API)<\/li>\n\n\n\n<li>des <strong>macros<\/strong><\/li>\n\n\n\n<li>et des <strong>types<\/strong> utilis\u00e9s par les fonctions du syst\u00e8me<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Par exemple :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>stdlib.h<\/code> d\u00e9clare des fonctions utilitaires (comme <code>malloc<\/code>, <code>exit<\/code>) et des macros (<code>EXIT_SUCCESS<\/code>, <code>EXIT_FAILURE<\/code>)<\/li>\n\n\n\n<li><code>stdio.h<\/code> contient les d\u00e9clarations n\u00e9cessaires pour les op\u00e9rations d&rsquo;entr\u00e9e\/sortie standard (<code>printf<\/code>, <code>scanf<\/code>, etc.)<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-ast-global-color-0-color\">En bleu<\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> la fonction minimale du code c ,  main() <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gcc bonjour.c <mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">-o<\/mark> bonjour <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">l&rsquo;option <mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">-o<\/mark>  permet de passer le nom du fichier de sortie (o comme output)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">on peut voir d&rsquo;autres syntaxe :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gcc -o bonjour bonjour.c  #fonctionne \u00e9galement<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Et parfois si on doit juste tester un code le fichier de sortie peut \u00eatre omis, mais \u00e7a n&rsquo;est pas conseill\u00e9 !<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gcc bonjour.c\n# le fichier de sortie sera a.out par defaut<\/code><\/pre>\n\n\n\n<h2 id=\"erreur-de-compilation\" class=\"wp-block-heading\">Erreur de compilation<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/********************************\n * Projet :\n * Auteur :\n * Date   :\n ********************************\/\n#include &lt;stdlib.h&gt;\n#include &lt;stdio.h&gt;\n\nint main (int argc, char **argv)\n{\n\t<mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">oprintf<\/mark> (\"Bonjour le monde \\n\"); \/* erreur oprintf  au lieu de printf *\/\n\treturn EXIT_SUCCESS;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>bruno@elliott:~\/Works\/langage_C\/projet$ gcc -o projet projet.c \nprojet.c: In function \u2018main\u2019:\nprojet.c:11:9: warning: implicit declaration of function \u2018oprintf\u2019; did you mean \u2018dprintf\u2019? &#91;-Wimplicit-function-declaration]\n   11 |         oprintf(\"Bonjour le monde \\n\");\n      |         ^~~~~~~\n      |         dprintf\n\/usr\/bin\/ld&nbsp;: \/tmp\/ccKAUOBK.o&nbsp;: dans la fonction \u00ab&nbsp;main&nbsp;\u00bb&nbsp;:\nprojet.c:(.text+0x1f)&nbsp;: <mark style=\"background-color:rgba(0, 0, 0, 0);color:#cf2e2e\" class=\"has-inline-color\">r\u00e9f\u00e9rence ind\u00e9finie vers \u00ab&nbsp;oprintf&nbsp;\u00bb<\/mark>\ncollect2: error: ld returned 1 exit status\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ligne 11 caract\u00e8re en position 9  il y a une erreur , gcc vous propose m\u00eame une solution possible mais la c&rsquo;est non.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les messages d&rsquo;erreur de gcc sont de plus en plus pr\u00e9cis.<\/p>\n\n\n\n<h2 id=\"les-options-de-compilations\" class=\"wp-block-heading\">Les options de compilations<\/h2>\n\n\n\n<h2 id=\"lc\" class=\"wp-block-heading\">-lc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">permet de faire les liens des librairies standards (libc.so ou libc.a)  , option par d\u00e9faut (on peut ne pas la mettre c&rsquo;est par d\u00e9faut) <\/p>\n\n\n\n<h2 id=\"wall\" class=\"wp-block-heading\">-Wall<\/h2>\n\n\n\n<h3 id=\"option-wall-dans-gcc\" class=\"wp-block-heading\">\ud83d\udd14 Option <code>-Wall<\/code> dans <code>gcc<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;option <strong><code>-Wall<\/code><\/strong> signifie <strong>\u00ab\u00a0Warn All\u00a0\u00bb<\/strong> (afficher tous les avertissements courants).<br>Elle <strong>active un grand nombre de messages d&rsquo;avertissement<\/strong> lors de la compilation pour t\u2019aider \u00e0 d\u00e9tecter :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>des erreurs potentielles<\/li>\n\n\n\n<li>des mauvaises pratiques<\/li>\n\n\n\n<li>du code ambigu ou non portable<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tu peux aller plus loin avec :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-Wextra<\/code> : encore plus d\u2019avertissements<\/li>\n\n\n\n<li><code>-Werror<\/code> : transforme les avertissements en erreurs (le code ne compile pas si un warning appara\u00eet)<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<h1 id=\"option-ansi\" class=\"wp-block-heading\">\ud83d\udd14 Option -ansi<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Active la compatibilit\u00e9 ANSI C (C89\/C90)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>D\u00e9sactive certains \u00e9l\u00e9ments non standards<\/strong>, notamment :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>les <strong>extensions GNU<\/strong> au langage C (ex : <code>typeof<\/code>, certains attributs sp\u00e9cifiques, etc.)<\/li>\n\n\n\n<li>certains mots-cl\u00e9s comme <code>asm<\/code>, <code>typeof<\/code>, <code>inline<\/code> (sauf si tu actives <code>-std=gnu89<\/code>)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rend le compilateur plus strict<\/strong> : utile pour \u00e9crire du code portable, conforme aux standards classiques<\/p>\n\n\n\n<h3 id=\"ansi-american-national-standards-institute\" class=\"wp-block-heading\">\ud83d\udcd8 <strong>ANSI : American National Standards Institute<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ANSI<\/strong> est l&rsquo;abr\u00e9viation de <strong><em>American National Standards Institute<\/em><\/strong>, c\u2019est-\u00e0-dire <strong>l\u2019Institut national am\u00e9ricain de normalisation<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Je vous conseille fortement d\u2019utiliser les options <code>-Wall<\/code> et <code>-ansi<\/code> lors de la compilation avec <code>gcc<\/code>.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-Wall<\/code> : active les <strong>avertissements courants<\/strong>. Cela vous aide \u00e0 rep\u00e9rer tr\u00e8s t\u00f4t des erreurs de logique, des oublis, ou des pratiques dangereuses \u2014 m\u00eame si le code compile.<\/li>\n\n\n\n<li><code>-ansi<\/code> : force le compilateur \u00e0 respecter le <strong>langage C standard (ANSI C)<\/strong>, sans extensions sp\u00e9cifiques \u00e0 GCC. Cela rend votre code <strong>plus portable<\/strong>, <strong>plus propre<\/strong>, et conforme aux <strong>bonnes pratiques<\/strong>.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>gcc -lc -Wall -ansi mon_programme.c -o mon_programme<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Les \u00e9tapes de compilation \/ pr\u00e9 processing \/ assemblage et \u00e9dition des liens<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Code source  \u2502  (.c)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n       \u2502\n       \u2502 Pr\u00e9processing (gcc -E)\n       \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Code pr\u00e9pro  \u2502  (.i)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n       \u2502\n       \u2502 Compilation (gcc -S)\n       \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502Code assembleur\u2502  (.s)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n       \u2502\n       \u2502 Assemblage (gcc -c)\n       \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Code objet   \u2502  (.o)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n       \u2502\n       \u2502 'Linkage' (gcc)\n       \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Ex\u00e9cutable   \u2502  (a.out ou autre si -o autre :)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n\n\n\n<h1 id=\"option-g\" class=\"wp-block-heading\">\ud83d\udd14 Option -g <\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ajoute les sondes logiciels  pour d\u00e9bugger le code <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">pour que le code machine obtenu soit utilisable avec gdb , debugger<\/p>\n\n\n\n<h2 id=\"static\" class=\"wp-block-heading\">-static <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Force le code \u00e0 \u00eatre statique (mis dans le code) par exemple libc.a au lieu d&rsquo;utiliser libc.so , le code obtenu sera plus gros mais ind\u00e9pendant de la librairie dynamique .so <\/p>\n","protected":false},"excerpt":{"rendered":"<p>GCC (GNU Compiler Collection) GCC est un compilateur d\u00e9velopp\u00e9 par le projet GNU. Il permet de traduire du code source \u00e9crit en langage C (et d&rsquo;autres langages) en code machine [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-1076","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>gcc - workboot<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/workboot.fr\/ciela\/gcc\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"gcc - workboot\" \/>\n<meta property=\"og:description\" content=\"GCC (GNU Compiler Collection) GCC est un compilateur d\u00e9velopp\u00e9 par le projet GNU. Il permet de traduire du code source \u00e9crit en langage C (et d&rsquo;autres langages) en code machine [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/workboot.fr\/ciela\/gcc\/\" \/>\n<meta property=\"og:site_name\" content=\"workboot\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-16T11:51:00+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gcc\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gcc\\\/\",\"name\":\"gcc - workboot\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\"},\"datePublished\":\"2025-06-04T09:11:44+00:00\",\"dateModified\":\"2026-02-16T11:51:00+00:00\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/workboot.fr\\\/ciela\\\/gcc\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"name\":\"workboot\",\"description\":\"Open Source, Open Minds \",\"publisher\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\",\"name\":\"workboot\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"contentUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"width\":1024,\"height\":950,\"caption\":\"workboot\"},\"image\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"gcc - workboot","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/workboot.fr\/ciela\/gcc\/","og_locale":"fr_FR","og_type":"article","og_title":"gcc - workboot","og_description":"GCC (GNU Compiler Collection) GCC est un compilateur d\u00e9velopp\u00e9 par le projet GNU. Il permet de traduire du code source \u00e9crit en langage C (et d&rsquo;autres langages) en code machine [&hellip;]","og_url":"https:\/\/workboot.fr\/ciela\/gcc\/","og_site_name":"workboot","article_modified_time":"2026-02-16T11:51:00+00:00","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/workboot.fr\/ciela\/gcc\/","url":"https:\/\/workboot.fr\/ciela\/gcc\/","name":"gcc - workboot","isPartOf":{"@id":"https:\/\/workboot.fr\/ciela\/#website"},"datePublished":"2025-06-04T09:11:44+00:00","dateModified":"2026-02-16T11:51:00+00:00","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/workboot.fr\/ciela\/gcc\/"]}]},{"@type":"WebSite","@id":"https:\/\/workboot.fr\/ciela\/#website","url":"https:\/\/workboot.fr\/ciela\/","name":"workboot","description":"Open Source, Open Minds ","publisher":{"@id":"https:\/\/workboot.fr\/ciela\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/workboot.fr\/ciela\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/workboot.fr\/ciela\/#organization","name":"workboot","url":"https:\/\/workboot.fr\/ciela\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/","url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","contentUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","width":1024,"height":950,"caption":"workboot"},"image":{"@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/workboot.fr\/ciela\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"GCC (GNU Compiler Collection) GCC est un compilateur d\u00e9velopp\u00e9 par le projet GNU. Il permet de traduire du code source \u00e9crit en langage C (et d&rsquo;autres langages) en code machine [&hellip;]","_links":{"self":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/1076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/comments?post=1076"}],"version-history":[{"count":19,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/1076\/revisions"}],"predecessor-version":[{"id":6778,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/1076\/revisions\/6778"}],"wp:attachment":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/media?parent=1076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}