Wie aktiviere ich c11 in späteren Versionen von gcc?
Lesezeit: 2 Minuten
verwende ich derzeit gcc 4.6.3. Mein Verständnis ist das gcc verwendet standardmäßig die gnu89 Standard und ich möchte C11, den neusten C-Standard, aktivieren. Ich habe es versucht:
[pauldb@pauldb-laptop test ]$ gcc -std=c11 -o test test.c
cc1: error: unrecognised command line option ‘-std=c11’
ich ersetzte c11 mit gnu11 und ich bekomme den gleichen Fehler. Was ist der richtige Weg, um den neuesten C-Standard für gcc zu aktivieren?
(Hinweis: Ich interessiere mich für den neuesten C-Standard und nicht für den neuesten C++-Standard.)
Wenn Sie an einem funktionierenden Wrapper um gcc interessiert sind, der viele interessante Teile von C11 implementiert, werfen Sie einen Blick auf P99, p99.gforge.inria.fr
– Jens Gustedt
27. April 2013 um 21:47 Uhr
ouah
Die richtige Option ist -std=c11.
Es ist jedoch nicht verfügbar in gcc 4.6. Sie brauchen wenigstens gcc 4.7 um diese Option zu unterstützen. In einigen älteren Versionen wie gcc 4.6die Option -std=c1x war mit experimenteller (dh sehr begrenzter) Unterstützung von C11 verfügbar.
Beachten Sie, dass die aktuelle Version von gcc ist gcc 8.2.
richtige Antwort, aber meiner Erfahrung nach die -std=c11 funktioniert noch nicht, sei vorsichtig. In gcc fehlen einige Teile von C11, daher ist es (noch) nicht einfach, mit C11 und gcc zu arbeiten.
@bluszcz Das spricht von g++ und C++11, gilt das gleiche für gcc und C11?
– Kompliment
5. Juni 2013 um 3:50 Uhr
Nur um Sie wissen zu lassen, dass GCC 4.9.x eine weitaus vollständigere Unterstützung bietet als ältere Versionen. Wenn Sie diese Funktion wirklich benötigen, wechseln Sie bitte zu irgendetwas 4.8+. Hier ist der Support-Status — https://gcc.gnu.org/wiki/C11Status
gcc 5.2.0 funktioniert mit der Befehlszeilenoption ‘-std=c11’
In einer .spec-Datei:
%define gcc_ver %(if [[ $(gcc -dumpversion) > 4.7 ]]; then echo 1; else echo 0; fi)
# Do we use c11 ?
%if 0%{?gcc_ver} < 1
%global std_c11 0
%else
%global std_c11 1
%endif
# if the configure of the package supports it add :
%if %{std_c11}
--enable-cxx11 \
%endif
14020600cookie-checkWie aktiviere ich c11 in späteren Versionen von gcc?yes
Wenn Sie an einem funktionierenden Wrapper um gcc interessiert sind, der viele interessante Teile von C11 implementiert, werfen Sie einen Blick auf P99, p99.gforge.inria.fr
– Jens Gustedt
27. April 2013 um 21:47 Uhr