Ich möchte den c99-Modus im gcc-Compiler aktivieren, wie ich in einem anderen Beitrag in diesem Forum gelesen habe -std
sollte gleich sein -std=c99
aber ich weiß nicht, wie ich es über die Befehlszeile auf diesen Wert setzen soll, also helfen Sie bitte.
So aktivieren Sie den c99-Modus in gcc mit Terminal
Benutzer297904
jpw
Kompilieren mit:
gcc -std=c99 -o outputfile sourcefile.c
gcc --help
listet einige Optionen auf, eine vollständige Liste der Optionen finden Sie unter Anleitungen. Die verschiedenen Optionen für C-Dialekt finden Sie im Abschnitt “Optionen zur Steuerung des C-Dialekts” auf jeden gcc
Handbuch der Version (z. hier).
Wie Sie verwenden make
Sie können die Befehlszeilenoptionen für gcc mit festlegen 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)
Nachtrag (hinzugefügt Ende 2016): C99 wird mittlerweile etwas alt, Leute, die sich diese Antwort ansehen, möchten vielleicht nachforschen C11 stattdessen.
-
danke, aber ersetzt dies make, weil ich immer make verwende, um alle meine Programme zu kompilieren?
– Benutzer297904
29. August 2014 um 10:51 Uhr
-
@ user297904 Nein, wenn Sie ein Makefile verwenden, sollten Sie stattdessen die Optionen darin festlegen. Ich werde meine Antwort mit einem Beispiel aktualisieren.
– jpw
29. August 2014 um 10:54 Uhr
-
danke für das update eine letzte frage sollte in das terminal oder in die konfigurationsdatei von make geschrieben werden und wo ist die konfigurationsdatei von make ?
– Benutzer297904
29. August 2014 um 11:18 Uhr
-
@user297904 Wenn Sie make verwenden, haben Sie ein Makefile, das make mitteilt, was zu tun ist, wenn Sie es aufrufen. Das Beispiel, das ich hinzugefügt habe, ist ein einfaches Makefile, das eine C-Datei namens source.c im selben Verzeichnis kompiliert und eine ausführbare Datei namens erstellt
outputfile
– jpw
29. August 2014 um 11:20 Uhr
-
Zwei Jahre nachdem ich dies geschrieben habe, bekomme ich immer noch einige Upvotes, was natürlich nett ist, aber es könnte an der Zeit sein, C99 hinter sich zu lassen und zu neueren Standards überzugehen (z
-std=c11
stattdessen für C11).– jpw
22. Oktober 2016 um 0:17 Uhr
Rahul Tripathi
Sie können versuchen, die zu verwenden -std=c99
Flagge.
Versuchen Sie, so zu kompilieren:
gcc -Wall -std=c99 -g myProgram.c
Beachte das auch -g
ist für die Debugging-Option (Danke Alter Mann für den Hinweis).
Basierend auf den Kommentaren unter einer anderen Antwort verwenden Sie möglicherweise die impliziten Make-Regeln und haben kein Makefile. Wenn dies der Fall ist, dann rennst du nur make tst
generieren tst binär aus tst.c. In diesem Fall können Sie die Flags angeben, indem Sie die Umgebungsvariable setzen CFLAGS
. Sie können es für die aktuelle Shell festlegen oder zu Ihrer hinzufügen ~/.bashrc
um es immer dabei zu haben:
export CFLAGS='-Wall -Wextra -std=c99'
Oder geben Sie es nur für den einzelnen Befehl an:
CFLAGS='-Wall -Wextra -std=c99' make tst
(Hinweis: Ich habe auch Warnflaggen hinzugefügt, Sie sollten sie wirklich verwenden, sie werden viele potenzielle Fehler oder einfach nur schlechten Code erkennen, den Sie anders schreiben sollten.)
füge deinen Befehl mit -std=c99 an;)
– Timoteusz Paul
29. August 2014 um 10:39 Uhr
Wie geben Sie den Namen der ausführbaren Datei an?
– jxh
29. August 2014 um 10:41 Uhr
Verwenden Sie den Befehl
c99
um in der Sprache C99 geschriebene Programme zu kompilieren 😉– Marc Glisse
22. Oktober 2016 um 6:57 Uhr