Ich habe mich gefragt, ob es irgendwelche Dateien gibt, in denen ich das einstellen könnte -std=c99
Flag, damit ich es nicht für jede Compilation setzen müsste. Ich verwende GCC 4.4 auf Ubuntu.
Setzen des Flags std=c99 in GCC
Fatmarik
Anstatt anzurufen /usr/bin/gcc
verwenden /usr/bin/c99
. Dies ist die von Single-Unix genehmigte Art, einen C99-Compiler aufzurufen. Auf einem Ubuntu-System verweist dies auf ein Skript, das aufruft gcc
nachdem Sie die hinzugefügt haben -std=c99
Flagge, das ist genau das, was Sie wollen.
-
Ok, ich bin neu in der Linux-Programmierung (lerne am College), wie verwende ich /usr/bin/c99 ? Ich verwende Vim-Gnome mit C-Plugin, in dem ich nur \rr zum Kompilieren und Ausführen mache.
– Fatmarik
3. Februar 2010 um 18:24 Uhr
-
Nach dem, was ich im Web finde, gibt es eine globale Variable namens
C_CCompiler
was den C-Compiler bezeichnet. Normalerweise ist es auf eingestelltgcc
. Ersetzen Sie den Inhalt durchc99
und alles sollte gut gehen. Siehe Hilfedatei auf: lug.fh-swf.de/vim/vim-doc/csupport.html– Thomas Pornin
3. Februar 2010 um 19:00 Uhr
-
Beachten Sie, dass die Verwendung von c99 auf dem Mac zu überraschenden Ergebnissen führen kann: stackoverflow.com/questions/4182413
– dubiosjim
31. Mai 2012 um 22:09 Uhr
Wie wäre es mit alias gcc99= gcc -std=c99
?
-
+1 Das ist, was ich tue. Und wenn Sie schon dabei sind, fügen Sie dem Alias die Flags -Wall und -pedantic hinzu.
– anon
3. Februar 2010 um 17:03 Uhr
-
+1. So sieht mein Alias nun tatsächlich aus:
alias gcc99=gcc -Wall -pedantic -ansi -std=c99
. Ja, mitansi
auch.– dirkgent
3. Februar 2010 um 17:37 Uhr
-
@dirkgently: also mit welchem Standard (falls vorhanden) implementiert GCC
-std=c99 -ansi
? Sie haben C99 aktiviert und dann alles deaktiviert, was nicht in C89 enthalten ist. Ergibt das die gemeinsame Teilmenge von beiden?– Steve Jessop
3. Februar 2010 um 18:45 Uhr
-
Ich habe das gelesen, aber es sagt mir, was GCC tut, nicht warum es nützlich ist ;-). Insbesondere, wie und warum ist
-ansi -std=c99 -pedantic
besser als-std=c89 -pedantic
?– Steve Jessop
3. Februar 2010 um 19:20 Uhr
-
Die Reihenfolge spielt sicherlich eine Rolle. Zum Beispiel
int main() { // thing <newline> }
, wobeiein Zeilenumbruch ist. Kompiliert mit gcc -ansi -std=c99 -pedantic
aber nicht mitgcc -std=c99 -ansi -pedantic
.– Steve Jessop
3. Februar 2010 um 19:29 Uhr