GCC

Da Andreabont's Wiki.

Librerie dinamiche

Compilare una libreria dinamica

g++ -shared -fPIC -o <libreria.so> <sorgente>

Eseguire il link con una libreria dinamica

g++ -l<nome_libreria> <sorgente>

Abilitare avvisi per regole Effective C++

g++ -Weffc++ <sorgente>

Compilare con i simboli di debug

g++ -g <sorgente>

Specifica delle directory sorgenti

Directory di include

E' possibile definire le directory di include tramite l'opzione -I, attenzione che le librerie installate nel sistema hanno la priorità.

g++ -I<path> <sorgente>

Passaggi compilazione

Eseguire il preprocessore

g++ -E sorgente.cpp > sorgente.out.cpp

Compilare ottenendo l'assembly

g++ -S <sorgente>

Compilare ottenendo il file oggetto

g++ -c <sorgente>

Compilare passando dei flag

Poniamo di avere il codice C:

#ifdef MIADEFINE
printf("Hai selezionato MIADEFINE\n");
#else
printf("Non hai selezionato MIADEFINE\n");
#endif

E' possibile scegliere a compile-time il codice da usare passando o meno la define al compilatore:

g++ <sorgente> [-DMIADEFINE]