malnefrage.de
malnefrage.de
Menü
Facebook
Twitter
E-Mail
Bookmark
weitere
Ratgeber-Community für Fragen & Antworten:
Forum mit Tipps, Hilfe und Ratschläge
Forum Frage stellen! Neue Fragen Neue Antworten Login
Frage
Frage
von JohnTheKipper am 15.11.2018, 08.08 Uhr

Wie kann ich bei C++ einen bestimmten Standard Explizit für den Compiler einstellen?

z.B. C++ 98 oder C++ 14 oder C++ 17?

Antwort
Antwort
von CgigPlus am 06.01.2020, 01.24 Uhr
Für jeden C/C++ Programmcode, der von GCC, G++ oder MSVC kompiliert wird, versucht der Compiler, einem oder mehreren C/C++ Sprachstandards zu folgen. Du kannst dem Compiler explizit angeben, welchen der verfügbaren C/C++ Standards beim Kompilieren deines Programms verwendet werden soll. Die Version des Standards kannst Du in der Kompilierungsoption "-std=..." (Linux; MinGW für Windows) bzw. "/std:..." (MSVC für Windows) in der Kommandozeile festlegen.

Zum Beispiel:
$ gcc -std=c17 ./my_prog.c

$ gcc -std=c++11 -lstdc++ ./my_prog.cpp

$ g++ -std=c++17 ./my_prog.cpp -o my_prog

> csc.exe /std:c++17 my_prog.cpp
GCC Compiler unterstützt die folgenden C Standards:
c90 (1990; ANSI C)
c99 (1999)
c11 (2011)
c17 (2017)

GCC/G++ Compiler unterstützen die folgenden C++ Standards:
c++98 (1998)
c++11 (2011)
c++14 (2014)
c++17 (2017)
c++2a (2020)

Um auch GNU-Erweiterungen für einen bestimmten Standard zu aktivieren, verwende die Bezeichnung "gnu" anstatt von "c++" im Parameter "-std=...". Zum Beispiel, "-std=gnu17" anstatt von "-std=c++17".

Du kannst den Parameter "-std=..." auch in den Variablen CFLAGS (für C Compiler) bzw. CCFLAGS (für C++ Compiler) im Makefile angeben, wenn Du ein Makefile benutzt. Die Variable aus dem Makefile wird beim automatischen Aufruf des Compilers (Build-Prozess) durch den Wert $(CFLAGS) bzw. $(CCFLAGS) ersetzt.

Zum Beispiel:
$GCC $CFLAGS my_prog.c -o file $LDFLAGS
In Entwicklungsumgebungen (IDE) für C/C++ wie Microsoft Visual Studio findest Du die entsprechenden Optionen unter Project > Properties > C/C++ > Language > C++ Language Standard. Du kannst den gewünschten C/C++ Standard im Dropdown-Menü auswählen.

Die von Microsoft Visual Studio unterstützten C++ Standards und die entsprechenden Kommandozeilenparameter sind:

/std:c++14 (2014)
/std:c++17 (2017)
/std:c++latest (die aktuell implementierten Features von Compiler und Standardbibliotheken)

Visual Studio 2017 unterstützt CMake Projekte. CMake erlaubt es, den C++ Standard als Property in CMakeLists.txt zu setzen.

Zum Beispiel:
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PROPERTY
# Den Standard C++14 aktivieren
CXX_STANDARD 14
)

Ähnliche Fragen
Hallo zusammen, ich habe einen Artikel über Metallurgie gelesen und frage daher, ob jemand was in die Richtung studiert? Explizit dazu habe ich keinen ...
Hallo, ich bin derzeit am tüfteln, wie ich bei einem Raspberry Pi 4 (8GB Ram) unter einem virtuellen Server den Standard Audio Ausgang übergeben kann. ...
Wahrscheinlich bin ich einfach nur zu blöd, aber sagt mal, wo finde ich auf einem Android Smartphone das Paragraph-Zeichen auf der Gboarb Tastatur? Benutze ...
Hallo, ich habe mir Alexa von Amazon geholt und jetzt wollen meine Kids Ihr dauernd Fragen stellen. Die Standard Fragen haben haben sie alle gefühlt ...
Gibt es einen Unterschied zwischen Federweißer und Neuer Wein oder ist es das gleiche? Wer weiss es? Oder wird neuer Wein nur in bestimmten Regionen ...
Nächste Frage

Die auf malnefrage.de veröffentlichten Fragen und Antworten sind Meinungsäußerungen der jeweiligen User. Da die Aussagen nicht geprüft werden, kann die Richtigkeit der Inhalte nicht gewährleistet werden.