so aktivieren Sie c++11 in linux
Wollte ich nutzen unordered_map STL in c++, aber sobald ich den header, es gibt mir diese Fehlermeldung:
Diese Datei erfordert Unterstützung für den compiler-und library-Unterstützung für das ISO-standard C++11. Diese Unterstützung derzeit noch experimentell und muss aktiviert werden, mit -std=c++11 oder -std=gnu++11 compiler-Optionen.
Ich füge meinen code, den ich ausführen wollte, unten. (Alle Eingänge, die auf dem code sind auch willkommen. danke)
#include <iostream>
#include <unordered_map>
using namespace std;
class Node
{
public:
string a,b;
Node()
{
a="hello";
b="world";
}
};
int main ()
{
unordered_map<Node> mymap;
Node mynode;
mymap.insert(mynode);
std::cout << "myrecipe contains:" << std::endl;
for (auto& x: mymap)
std::cout << x.a << ": " << x.b << std::endl;
}
Edit: ich habe es zu arbeiten, indem Sie den folgenden Befehl: g++ -std=c++11 [mit dem Namen].cpp
Danke für die Hilfe.
"Diese Unterstützung derzeit noch experimentell und muss aktiviert werden, mit -std=c++11 oder -std=gnu++11 compiler-Optionen." Was ist nicht klar? Beachten Sie, dass dies ist compiler spezifische, und nicht wirklich etwas zu tun haben mit deinem Betriebssystem (vermutlich bist du mit gcc zur Verfügung, die auch auf windows und OSX und ein paar andere Plattformen, IIRC).
Die Frage ist, wie man meinen code zu kompilieren, ohne diese Fehlermeldung? vielen Dank im Voraus.
Die Fehlermeldung enthält die entsprechenden Anleitungen - fügen Sie einfach eine der Optionen (
Die Frage ist, wie man meinen code zu kompilieren, ohne diese Fehlermeldung? vielen Dank im Voraus.
Die Fehlermeldung enthält die entsprechenden Anleitungen - fügen Sie einfach eine der Optionen (
-std=c++11
oder -std=gnu++11
) beim kompilieren.InformationsquelleAutor pyroscepter | 2014-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die wichtigste Antwort auf Ihre Frage: geben Sie
-std=c++11
in Ihrem Befehl kompilieren.Genau, die C++11-Funktionen verfügbar sind, hängt von Ihrer version von GCC. Hier sind zwei links, die vielleicht helfen:
https://gcc.gnu.org/projects/cxx0x.html
http://wiki.apache.org/stdcxx/C++0xCompilerSupport
g++ -g -Wall -pedantic -std=c++11 -o myprog myprog.cpp
zum Beispiel.InformationsquelleAutor FoggyDay
Erste Option:
Können Sie entfernen, um Fehler mit
-std=c++11
im compile-Zeit.Zweite Option Integration der Entwicklung mit c++11:
Können Sie ein makefile mit dem CXXFLAGS gesetzt mit
-std=c++11
Ein makefile ist eine einfache text-Datei mit Anweisungen zum kompilieren Ihres Programms. Erstellen Sie eine neue Datei mit dem Namen Makefile (mit einem Kapital M). Automatisch kompilieren Sie Ihren code geben Sie einfach den Befehl make im terminal an. Sie müssen möglicherweise installieren stellen.Hier ist der code :
Es wird davon ausgegangen, dass alle .cpp-Dateien sind im selben Verzeichnis wie das makefile. Aber Sie können ganz einfach optimieren Sie Ihr makefile zu unterstützen, eine src -, include-und build-Verzeichnisse.
Stellen Sie sicher, dass Sie mithilfe von Tabulatoren für die Einrückung, und nicht nur ein paar Räume. Makefiles zu sein scheinen wählerisch.
das sagt nun clang++ der Befehl nicht gefunden wurde. keine Ahnung wie zu lösen?
Check hier für die Behebung des Fehlers, Sie bekommen, @Siddharth'elMásGrande'
InformationsquelleAutor Skynet
kompilieren mit:
InformationsquelleAutor Rupesh Yadav.