gcc |
Collection de compilateur GNU |
---|---|
Linux | Externe |
Syntaxe
gcc [ options fichier ] ... |
Paramètres
Nom | Description | |
---|---|---|
fichier | Ce paramètre permet d'indiquer le nom du fichier à compiler. | |
-### | Ce paramètre permet d'afficher les programmes appelé par le compilateur gcc mais sans exécuté les paramètres entre guillemet. | |
-b machine | Ce paramètre permet d'indiquer qu'il faut exécuter gcc sur la machine spécifié, si le compilateur y est installé. | |
-B directory | Ce paramètre permet d'ajouter le répertoire spécifiés aux chemins de recherche du compilateur gcc. | |
-combine | Ce paramètre permet d'indiquer qu'il faut compiler plusieurs fichiers source à la fois. | |
-dumpmachine | Ce paramètre permet d'afficher la plateforme de destination du compilateur (généralement le microprocesseur et le système d'exploitation). | |
-dumpspecs | Ce paramètre permet d'afficher les entrées de liaisons. | |
-dumpversion | Ce paramètre permet d'afficher la version du compilateur gcc. | |
-E arg | Ce paramètre permet d'indiquer qu'il faut effectuer un traitement de pré-processeur uniquement, sans compilation. | |
--help | Ce paramètre permet d'afficher l'aide de cette commande et quitte immédiatement après. | |
--help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...] | Ce paramètre permet d'afficher le types spécifiés d'options de ligne de commandes. Voici la signification des valeurs : | |
Valeur | Description | |
joined | Cette valeur permet d'indiquer qu'il faut afficher les paramètres apparaissant après un paramètre égale à la même pièce de texte continue, comme par exemple «--help=target». | |
optimizers | Cette valeur permet d'indiquer qu'il faut afficher toutes les options d'optimisation supporté par le compilateur. | |
params | Cette valeur permet d'indiquer qu'il faut afficher les valeur reconnus par l'option «--param». | |
target | Cette valeur permet d'indiquer qu'il faut afficher les options de la destination spécifié. | |
undocumented | Cette valeur permet d'indiquer qu'il faut afficher les options non-documenté. | |
warnings | Cette valeur permet d'indiquer qu'il faut afficher toutes les options contrôlant les messages d'attentions produit par le compilateur. | |
-no-canonical-prefixes | Ce paramètre permet d'indiquer qu'il ne faut pas canoniser les chemins de la construction des préfixes relatives vers les autres composantes gcc. | |
-o fichier | Ce paramètre permet d'indiquer le nom du fichier de sortie à utiliser pour générer le fichier exécutable. | |
-v --help=valeur | Ce paramètre permet d'afficher les détails de types spécifiés d'options de ligne de commandes. | |
--version | Ce paramètre permet d'afficher les informations de version de cette commande et quitte immédiatement après. | |
-pass-exit-codes | Ce paramètre permet d'indiquer qu'il faut terminer la compilation uniquement si toutes les passages de compilation ne réussissent pas. | |
-pipe | Ce paramètres permet d'indiquer qu'il faut utiliser le tuyau au lien de fichiers intermédiaires. | |
-print-file-name=lib | Ce paramètre permet d'afficher le chemin complet de la bibliothèque spécifié du gcc. | |
-print-libgcc-file-name | Ce paramètre permet d'afficher le nom de la bibliothèque du compilateur gcc. | |
-print-multi-directory | Ce paramètre permet d'afficher le répertoire racine des version libgcc. | |
-print-multi-lib | Ce paramètre permet d'afficher la cartographie entre les options de la ligne de commande et les multiples répertoires de recherches des bibliothèques de gcc. | |
-print-multi-os-directory | Ce paramètre permet d'afficher le chemin relatif vers les bibliothèques du système d'exploitation. | |
-print-prog-name=prog | Ce paramètre permet d'afficher le chemin complet vers la composante de programme du compilateur gcc. | |
-print-search-dirs | Ce paramètre permet d'afficher le chemin des répertoires de recherches du compilateur. | |
-print-sysroot | Ce paramètre permet d'afficher le répertoire de la bibliothèque destinataire. | |
-print-sysroot-headers-suffix | Ce paramètre permet d'afficher le suffixe «sysroot» utiliser pour la recherche des entêtes du langage de programmation C. | |
-S | Ce paramètre d'indiquer qu'il faut uniquement effectuer la compilation sans faire l'édition des liens (linker). | |
-save-temps | Ce paramètre permet d'indiquer qu'il ne faut supprimer les fichiers intermédiaire. | |
-save-temps=arg | Ce paramètre permet d'indiquer qu'il ne faut supprimer les fichiers intermédiaire avec les paramètres spécifiés. | |
-specs=fichier | Ce paramètre permet d'indiquer qu'il faut remplacer les spécifications internes en utilisant le fichier spécifié. | |
-std=standard | Ce paramètre permet d'indiquer que le fichiers d'entrée respectes le standard spécifié. | |
--sysroot=directory | Ce paramètre permet d'indiquer qu'il faut utiliser le répertoire spécifié comme répertoire racine des entêtes et des librairies. | |
--target-help | Ce paramètre permet d'indiquer qu'il faut afficher les options spécifiques disponible pour la ligne de commande spécifié. | |
-time | Ce paramètre permet de mesurer le temps d'exécution entre chaque sous-programme de gcc. | |
-v | Ce paramètre permet d'afficher les programmes appelé par le compilateur gcc. | |
-V version | Ce paramètre permet d'indiquer qu'il faut utiliser le numéro de version de gcc spécifié, s'il est installé sur le système d'exploitation. | |
-Wa,options | Ce paramètre permet d'indiquer qu'il faut passer options spécifiés au compilateur de langage de programmation assembleur. Ces options peuvent être séparé par des virgules. | |
-Wl,options | Ce paramètre permet d'indiquer qu'il faut passer options spécifiés à l'éditeur de lien (linker). Ces options peuvent être séparé par des virgules. | |
-Wp,options | Ce paramètre permet d'indiquer qu'il faut passer options spécifiés au préprocesseur de langage de programmation C. Ces options peuvent être séparé par des virgules. | |
-x langagedeprogrammation | Ce paramètre permet d'indiquer qu'il faut utiliser le langage de programmation spécifié comme entrée par défaut des fichiers. Le langage de programmation par défaut étant bien sûre C et C++, il tentera d'identifier par l'extension de fichier, le langage de programmation. Toutefois, on peut indiquer manuel le langage de programmation comme ceci : | |
Valeur | Description | |
ada | Cette valeur permet d'indiquer le langage de programmation Ada. | |
assembler | Cette valeur permet d'indiquer le langage de programmation Assembleur. | |
assembler-with-cpp | Cette valeur permet d'indiquer le langage de programmation Assembleur combiné avec le langage de programmation C++. | |
f77 | Cette valeur permet d'indiquer le langage de programmation Fortran. | |
go | Cette valeur permet d'indiquer le langage de programmation Go de Google. | |
java | Cette valeur permet d'indiquer le langage de programmation Java d'Oracle. | |
objective-c | Cette valeur permet d'indiquer le langage de programmation Objective C. | |
objective-c++ | Cette valeur permet d'indiquer le langage de programmation Objective C++. | |
... | ... | |
-Xassembler arg | Ce paramètre permet d'indiquer un paramètre à passer comme paramètre au compilateur assembleur. | |
-Xlinker arg | Ce paramètre permet d'indiquer un paramètre à passer comme paramètre à l'éditeur de lien (linker). | |
-Xpreprocessor arg | Ce paramètre permet d'indiquer un paramètre à passer comme paramètre au compilateur préprocesseur. |
Description
Cette commande permet de lancer le compilateur GNU C++.
Remarques
- Les paramètres -g, -f, -m, -O, -W, ou commençant par «--» sont automatiquement passés au sous-programme appelé par gcc. Tandis que pour les autres options, il faudra utilisé le paramètre «-W» pour effectuer ce même traitement.
- Voici les extensions de fichiers de code source automatiquement reconnu par le compilateur GCC :
Extension | Description |
---|---|
.adb | Cette extension permet d'indiquer un code source de langage de programmation Ada contenant le corps d'une unité de bibliothèque. |
.ads | Cette extension permet d'indiquer un code source de langage de programmation Ada contenant une déclaration d'unité de bibliothèque. |
.c | Cette extension permet d'indiquer un code source de langage de programmation C avec traitement de préprocesseur. |
.C | Cette extension permet d'indiquer un code source de langage de programmation C++ avec traitement de préprocesseur. |
.c++ | Cette extension permet d'indiquer un code source de langage de programmation C++ avec traitement de préprocesseur. |
.cc | Cette extension permet d'indiquer un code source de langage de programmation C++ avec traitement de préprocesseur. |
.cp | Cette extension permet d'indiquer un code source de langage de programmation C++ avec traitement de préprocesseur. |
.cpp | Cette extension permet d'indiquer un code source de langage de programmation C++ avec traitement de préprocesseur. |
.CPP | Cette extension permet d'indiquer un code source de langage de programmation C++ avec traitement de préprocesseur. |
.cxx | Cette extension permet d'indiquer un code source de langage de programmation C++ avec traitement de préprocesseur. |
.f | Cette extension permet d'indiquer un code source de langage de programmation Fortran sans traitement de préprocesseur. |
.F | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.f03 | Cette extension permet d'indiquer un code source de langage de programmation Fortran sans traitement de préprocesseur. |
.F03 | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.f08 | Cette extension permet d'indiquer un code source de langage de programmation Fortran sans traitement de préprocesseur. |
.F08 | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.F90 | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.f90 | Cette extension permet d'indiquer un code source de langage de programmation Fortran sans traitement de préprocesseur. |
.f95 | Cette extension permet d'indiquer un code source de langage de programmation Fortran sans traitement de préprocesseur. |
.F95 | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.FOR | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.for | Cette extension permet d'indiquer un code source de langage de programmation Fortran sans traitement de préprocesseur. |
.fpp | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.FPP | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.ftn | Cette extension permet d'indiquer un code source de langage de programmation Fortran sans traitement de préprocesseur. |
.FTN | Cette extension permet d'indiquer un code source de langage de programmation Fortran avec traitement de préprocesseur. |
.go | Cette extension permet d'indiquer un code source de langage de programmation Go. |
.h | Cette extension permet d'indiquer un code source de langage de programmation C, C++, Objective-C ou Objective-C++ avec une précompilation des entêtes. |
.H | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
.h++ | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
.hh | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
.hp | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
.hpp | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
.HPP | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
.hxx | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
.i | Cette extension permet d'indiquer un code source de langage de programmation C sans traitement de préprocesseur. |
.ii | Cette extension permet d'indiquer un code source de langage de programmation C++ sans traitement de préprocesseur. |
.m | Cette extension permet d'indiquer un code source de langage de programmation Objective-C avec traitement de préprocesseur. |
.M | Cette extension permet d'indiquer un code source de langage de programmation Objective-C ou Objective-C++ avec traitement de préprocesseur. |
.mi | Cette extension permet d'indiquer un code source de langage de programmation Objective-C sans traitement de préprocesseur. |
.mii | Cette extension permet d'indiquer un code source de langage de programmation Objective-C ou Objective-C++ sans traitement de préprocesseur. |
.mm | Cette extension permet d'indiquer un code source de langage de programmation Objective-C ou Objective-C++ avec traitement de préprocesseur. |
.s | Cette extension permet d'indiquer un code source de langage de programmation Assembleur. |
.S | Cette extension permet d'indiquer un code source de langage de programmation Assembleur avec traitement de préprocesseur. |
.sx | Cette extension permet d'indiquer un code source de langage de programmation Assembleur avec traitement de préprocesseur. |
.tcc | Cette extension permet d'indiquer un code source de langage de programmation C++ avec une précompilation des entêtes ou des spécifications du langage de programmation Ada. |
Exemples
Tout d'abord, si vous avez le programme «bonjour.c» dans votre répertoire courant :
- #include <stdio.h>
- #include <stdlib.h>
-
- int main()
- {
- printf("Bonjour !\n");
- return 0;
- }
L'exemple suivant permet d'uniquement compiler le programme «bonjour.c» :
gcc bonjour.c |
On sait si le programme compilé contient des erreurs, mais on obtient pas de résultat. Ce n'est donc pas très pratique. Par contre, l'exemple suivant permet de compiler le programme «bonjour.c» et de produire un fichier exécutable :
gcc bonjour.c -o bonjour |
on lance ensuite le fichier exécutable comme ceci :
./bonjour |
on obtiendra un résultat comme ceci :
Bonjour ! |
L'exemple suivant permet d'afficher les détails de liens de «bonjour.c» :
gcc -### -o bonjour bonjour.c |
on obtiendra un résultat ressemblant parfois à ceci (très variable d'une machine à l'autre) :
Utilisation des specs internes. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-linux/4.5.3/lto-wrapper Target: i686-pc-linux Configuré avec: /gnu/gcc/releases/respins/4.5.3-3/gcc4-4.5.3-3/src/gcc-4.5.3/configure --srcdir=/gnu/gcc/releases/respins/4.5.3-3/gcc4-4.5.3-3/src/gcc-4.5.3 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --datarootdir=/usr/share --docdir=/usr/share/doc/gcc4 -C --datadir=/usr/share --infodir=/usr/share/info --mandir=/usr/share/man -v --with-gmp=/usr --with-mpfr=/usr --enable-bootstrap --enable-version-specific-runtime-libs --libexecdir=/usr/lib --enable-static --enable-shared --enable-shared-libgcc --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --with-dwarf2 --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,java,lto,objc,obj-c++ --enable-graphite --enable-lto --enable-java-awt=gtk --disable-symvers --enable-libjava --program-suffix=-4 --enable-libgomp --enable-libssp --enable-libada --enable-threads=posix --with-arch=i686 --with-tune=generic --enable-libgcj-sublibs CC=gcc-4 CXX=g++-4 CC_FOR_TARGET=gcc-4 CXX_FOR_TARGET=g++-4 GNATMAKE_FOR_TARGET=gnatmake GNATBIND_FOR_TARGET=gnatbind --with-ecj-jar=/usr/share/java/ecj.jar Modèle de thread: posix gcc version 4.5.3 (GCC) COLLECT_GCC_OPTIONS='-o' 'bonjour' '-mtune=generic' '-march=i686' "/usr/lib/gcc/i686-pc-linux/4.5.3/cc1" "-quiet" "-D__LINUX32__" "-D__LINUX__" "-Dunix" "-D__unix__" "-D__unix" "-idirafter" "/usr/lib/gcc/i686-pc-linux/4.5.3/../../../../include/w32api" "-idirafter" "/usr/lib/gcc/i686-pc-linux/4.5.3/../../../../i686-pc-linux/lib/../../include/w32api" "bonjour.c" "-quiet" "-dumpbase" "bonjour.c" "-mtune=generic" "-march=i686" "-auxbase" "bonjour" "-o" "/tmp/cckzpYVH.s" COLLECT_GCC_OPTIONS='-o' 'bonjour' '-mtune=generic' '-march=i686' "/usr/lib/gcc/i686-pc-linux/4.5.3/../../../../i686-pc-linux/bin/as" "-o" "/tmp/ccGfa4pt.o" "/tmp/cckzpYVH.s" COMPILER_PATH=/usr/lib/gcc/i686-pc-linux/4.5.3/:/usr/lib/gcc/i686-pc-linux/4.5.3/:/usr/lib/gcc/i686-pc-linux/:/usr/lib/gcc/i686-pc-linux/4.5.3/:/usr/lib/gcc/i686-pc-linux/:/usr/lib/gcc/i686-pc-linux/4.5.3/../../../../i686-pc-linux/bin/ LIBRARY_PATH=/usr/lib/gcc/i686-pc-linux/4.5.3/:/usr/lib/gcc/i686-pc-linux/4.5.3/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-o' 'bonjour' '-mtune=generic' '-march=i686' "/usr/lib/gcc/i686-pc-linux/4.5.3/collect2" "--wrap" "_Znwj" "--wrap" "_Znaj" "--wrap" "_ZdlPv" "--wrap" "_ZdaPv" "--wrap" "_ZnwjRKSt9nothrow_t" "--wrap" "_ZnajRKSt9nothrow_t" "--wrap" "_ZdlPvRKSt9nothrow_t" "--wrap" "_ZdaPvRKSt9nothrow_t" "-Bdynamic" "--dll-search-prefix=cyg" "--large-address-aware" "--tsaware" "-o" "bonjour" "/usr/lib/gcc/i686-pc-linux/4.5.3/../../../crt0.o" "/usr/lib/gcc/i686-pc-linux/4.5.3/crtbegin.o" "-L/usr/lib/gcc/i686-pc-linux/4.5.3" "-L/usr/lib/gcc/i686-pc-linux/4.5.3/../../.." "/tmp/ccGfa4pt.o" "-lgcc" "-lgcc_eh" "-llinux" "-luser32" "-lkernel32" "-ladvapi32" "-lshell32" "-lgcc" "-lgcc_eh" "/usr/lib/gcc/i686-pc-linux/4.5.3/crtend.o" |
Voir également
Langage de programmation - C pour Linux - Accueil