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

Benutzeravatar von ouah
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.

    – Jens Gustedt

    27. April 2013 um 21:45 Uhr

  • 4.8.1 wurde gerade veröffentlicht gcc.gnu.org/ml/gcc-announce/2013/msg00004.html mit voller Unterstützung

    – bluszcz

    4. Juni 2013 um 8:14 Uhr

  • @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

1402060cookie-checkWie aktiviere ich c11 in späteren Versionen von gcc?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy