https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html#Overall-Options

https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/C-Dialect-Options.html#C-Dialect-Options

Utilisation classique :

g++ fichier.cpp -std=c++11 -Wall -Wextra -o fichier_executable

-o fichier_executable

-o pour output, permet de définir le fichier de sortie. Si absent, le fichier créé est nommé a.out

Détermine le langage standard:

-std=c++14

Compilation simple (sans assemblage) :

 

Pour simplement compiler afin de vérifier l'absence d'erreur (ou plutôt voir ses erreurs), on utilise :

g++ -S fichier.cpp

Warnings:

pour que le compilateur retourne des warning sur des parties de codes qui lui semble incorrecte, on utilise généralement :

-Wall

on retrouve la liste des options que cela englobe à l'adresse ci-dessous:

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

 on peut compléter -Wall avec

-Wextra

Debug:

il faut ajouter l'option

-g

J'utilise, pour des tests, cgdb

cf. ce petit tutoriel: http://perso.ens-lyon.fr/daniel.hirschkoff/C_Caml/docs/doc_gdb.pdf

Consigne de pré-compilation:

J'ai écris du code uniquement utilisé pendant la phase de test. Pour le compiler et le lié à mon exécutable, j'utilise:

g++ -D TEST …

Le code contenu dans un fichier tel que:

#ifdef TEST
…
#endif

sera compilé. Si on oublie, la compilation risque de bien se passer mais à l'édition de lien…undefined reference to

Optimisation:

-O1 ou -O2 ... ou -O3

Quelle version utilise-t-on?

g++ --version

32 bits:

-m32

Édition de liens:

Petit rappel sur les librairies: si sous windows on a les .lib pour les librairies statiques et les .dll pour les librairies dynamiques, sous Linux, on a les .a en statique et les .so en dynamique.

Pour connaître les chemins pas défaut où g++ cherche les librairies:

ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012

http://www.mingw.org/wiki/LibraryPathHOWTO

Avec Mingw:

http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use

Autres liens:

http://www.mingw.org/wiki/DLL

http://tcuvelier.developpez.com/tutoriels/cross-gcc/gcc-natif/

http://c.developpez.com/cours/mode-emploi-gcc/

http://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html#zz-1.5

http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html