Corso di C con Linux

Opzioni del GCC

 

Nella scorsa puntata abbiamo introdotto il compilatore GCC, vediamo adesso quelle che sono alcune delle opzioni più utili:

Tabella 2-1. Opzioni del GCC

Opzioni

Descrizione

-o nomefile

Specifica il nomefile di output eseguibile, utile quando si deve creare un eseguibile. Se non viene specificata questa opzione, l'output di default è a.out. Esempio di utilizzo:

gcc -o targetfile sourcefile.c.

-c filesorgente1, filesorgente2, ecc..

Compila senza linkare i files sorgenti specificati, creando un file oggetto per ogni file sorgente specificato. Questa opzione é utile per la compilazione separata mediante l'utilizzo dell'utility make. Esempio di utilizzo:

gcc -c sourcefile.c

-Dpippo

Definisce la macro pippo per il preprocessore dalla linea di comando. Vedremo in seguito, che é una macro per preprocessore. Esempio di utilizzo:

gcc -Dpippo=\"pluto\" sourcefile.c .

Opzioni

Descrizione

-I directory

Aggiunge la directory specificata al percorso dove trovare i file di #include, usati dal programma sorgente. Esempio di utilizzo:

gcc -I/usr/local/include sourcefile.c

-L directory

Aggiunge la directory specificata al percorso dove si trovano le librerie. Esempio di utilizzo:

gcc -L/usr/local/lib sourcefile.c

-g

Produce informazioni aggiuntive utili ai debugger per poter lavorare.

Esempio di utilizzo: gcc -g -o target sourcefile.c

-ggdb

Produce informazioni extra per il Gnu Debugger. Vengono con questa opzione aggiunte all'eseguibile molte più informazioni di quelle necessarie per il debug, per ottimizzare le operazioni di debug con il Gnu Debugger. Esempio di utilizzo: gcc -ggdb -o target sourcefile.c

Opzioni

Descrizione

-ansi

Supporta tutti i programmi scritti seguendo lo standard ANSI, ove vi siano confitti tra le estensioni GCC e lo standard ANSI, vengono disabilitate tali estensioni. Esempio di utilizzo: gcc -ansi -o target sourcefile.c

-Wall

Abilita tutti i messaggi di Warning di utilità generale, che il GCC fornisce. Molto utile quando il vostro programma non funziona come dovrebbe. Consiglio vivamente di usare quasi sempre questa opzione. Esempio di utilizzo: gcc -Wall -o target sourcefile.c

-On

Ottimizza il codice, dove n é il livello di ottimizzazione. Il massimo livello di ottimizzazione allo stato attuale é il 3, quello generalmente più usato é 2. Quando non si deve eseguire il debug é consigliato ottimizzare il codice. Esempio di utilizzo: gcc -O2 -o target sourcefile.c

-pedantic

Da durante, la compilazione, tutti i warning e gli errori fatti in un programma che rispetti l'ANSI C. Esempio di utilizzo: gcc -pedantic -o target sourcefile.c

 

Opzioni

Descrizione

-pedantic

Da durante, la compilazione, tutti i warning e gli errori fatti in un programma che rispetti l'ANSI C. Esempio di utilizzo: gcc -pedantic -o target sourcefile.c

-mcpu=tipo_cpu

Permette di specificare il tipo di cpu per il quale si vuole ottenere l'eseguibile. Per i comuni personal computer i valori ammessi sono:

Valori di mcpu
Processore  Valore ammesso
80386       'i386' 
80486       'i486' 
80586       'i586' 
80686       'i686' 
Pentium     'pentium' 
PentiumPro  'pentiumpro' 
AMD K6      'k6'

Esempio di utilizzo: gcc -mcpu='k6' -o target sourcefile.c

-lnome_libreria

Usa la libreria nome_libreria durante il linking. Cerca la libreria nelle directory standard, dove sono poste le librerie. Esempio di utilizzo:

gcc -lnome_libreria -o target sourcefile.c

-static

Nei sistemi che supportano le librerie dinamiche, fa in modo che i files vengano linkati con le librerie statiche.

Esempio di utilizzo: gcc -static -o target sourcefile.c

-S

Genera il codice assembler del file sorgente indicato. Esempio di utilizzo: gcc -S -o fileasm.s filesorgentec.c

Non preoccupatevi se non vi é chiaro qualcosa delle opzioni presenti nella tabella 2-1, in seguito ci ritorneremo sopra. Ho solo voluto dare una discreta panoramica delle opzioni che useremo per compilare gli esempi di questo testo.

 

 

Torna all'indice Generale del corso di Corso di C con Linux di Software Planet