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.
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.
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.
du solltest es versuchen
g++-4.4 -std=c++0x or g++-4.7 -std=c++0x