it-swarm.com.de

cc1plus: Fehler: Nicht erkannte Befehlszeilenoption "-std = c ++ 11" mit g ++

Ich versuche zu kompilieren mit g++ und entweder das -std=c++11 oder c++0x Flaggen.

Ich erhalte jedoch diesen Fehler

cc1plus: error: unrecognized command line option "-std=c++11"

g ++ --version

g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
82
user1382306

Ausgehend von Ihrer G ++ - Version müssen Sie diese unbedingt aktualisieren. C++ 11 ist erst seit G ++ 4.3 verfügbar. Die neueste Version ist 4.7.

In Versionen vor G ++ 4.7 müssen Sie -std=c++0x Verwenden, für neuere Versionen können Sie -std=c++11 Verwenden.

99
antonijn

Zitat aus der gcc website :

C++ 11-Funktionen sind als Teil des GCC-Compilers "mainline" im Trunk des Subversion-Repository von GCC und in GCC 4.3 und höher verfügbar. Fügen Sie zur Aktivierung der C++ 0x-Unterstützung den Befehlszeilenparameter -std = c ++ 0x zu Ihrer g ++ - Befehlszeile hinzu. Um GNU Erweiterungen zusätzlich zu den C++ 0x-Erweiterungen zu aktivieren, fügen Sie -std = gnu ++ 0x zu Ihrer g ++ - Befehlszeile hinzu. GCC 4.7 und höher unterstützen -std = c ++ 11 und auch -std = gnu ++ 11.

Vermutlich verwenden Sie eine Version von g ++, die -std=c++11 Nicht unterstützt. Versuchen Sie stattdessen -std=c++0x.

Die Verfügbarkeit von C++ 11-Funktionen gilt nur für Versionen> = 4.3.

14
stefan

du solltest es versuchen

g++-4.4 -std=c++0x or g++-4.7 -std=c++0x
3
papo