2014-08-29 17 views
10

Voglio attivare la modalità c99 nel compilatore gcc per leggere in un altro post in questo forum che -std deve essere uguale a -std=c99 ma non so come impostarlo su questo valore utilizzando linea di comando quindi per favore aiuto.Come abilitare la modalità c99 in gcc con terminale

+2

aggiungi il tuo comando con -std = c99;) –

+0

Come si specifica il nome di l'eseguibile? – jxh

+0

Usa il comando 'c99' per compilare programmi scritti nella lingua C99 ;-) –

risposta

30

compilazione utilizzando:

gcc -std=c99 -o outputfile sourcefile.c 

gcc --help liste alcune opzioni, per un elenco completo delle opzioni si riferiscono alla manual. Le diverse opzioni per il dialetto C possono essere trovate here.

Come si utilizza make è possibile impostare le opzioni della riga di comando per gcc utilizzando CFLAGS:

# sample makefile 
CC = gcc 
CFLAGS = -Wall -std=c99 
OUTFILE = outputfile 
OBJS = source.o 
SRCS = source.c 

$(OUTFILE): $(OBJS) 
     $(CC) $(CFLAGS) -o $(OUTFILE) $(OBJS) 
$(OBJS): $(SRCS) 
     $(CC) $(CFLAGS) -c $(SRCS) 

Addendum (aggiunto fine 2016): C99 sta diventando una specie di vecchio, ormai, le persone guardando questa risposta potrebbe voler esplorare C11 invece.

+0

grazie ma questo rimpiazzo lo faccio perché uso sempre make per compilare tutti i miei programmi? – user297904

+0

@ user297904 No, se usi un makefile dovresti invece impostare le opzioni al suo interno. Aggiornerò la mia risposta con un esempio – jpw

+0

grazie per l'aggiornamento un'ultima domanda dovrebbe scrivere nel terminale o all'interno del file di configurazione di make e dov'è il file di configurazione di make? – user297904

6

Si può provare a utilizzare il flag -std=c99.

Prova a complile in questo modo:

gcc -Wall -std=c99 -g myProgram.c 

Si noti inoltre che -g è per l'opzione di debug (Grazie Alter Mann per la segnalazione).

2

In base ai commenti sotto un'altra risposta, forse si stanno utilizzando le regole di creazione implicite e non si dispone di un Makefile. In questo caso, esegui semplicemente make tst per generare tst binario da tst.c. In tal caso è possibile specificare i flag impostando la variabile di ambiente CFLAGS. È possibile impostare per la shell corrente, o aggiungerlo al tuo ~/.bashrc per averlo sempre, con questo:

export CFLAGS='-Wall -Wextra -std=c99' 

O specificando solo per il singolo comando:

CFLAGS='-Wall -Wextra -std=c99' make tst 

(Nota: I aggiunto anche i flag di avviso, dovresti davvero usarli, rileveranno un sacco di potenziali bug o solo codice cattivo che dovresti scrivere in modo diverso.)

Problemi correlati