J'essaie de compiler en utilisant g++
et les indicateurs -std=c++11
ou c++0x
.
Cependant, j'obtiens cette erreur
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.
-std=c++0x
with g ++g++ --version
. Ensuite, publiez le numéro de version ici.g++-
dans la fenêtre de votre console.Réponses:
À partir de votre version G ++, vous devez la mettre à jour mal. C ++ 11 n'est disponible que depuis G ++ 4.3. La version la plus récente est la 4.7.
Dans les versions antérieures à G ++ 4.7, vous devrez utiliser
-std=c++0x
, pour les versions plus récentes que vous pouvez utiliser-std=c++11
.la source
Citant le site Web de gcc :
Vous utilisez donc probablement une version de g ++ qui ne prend pas en charge
-std=c++11
. Essayez à la-std=c++0x
place.La disponibilité des fonctionnalités de C ++ 11 concerne uniquement les versions> = 4.3.
la source
tu devrais essayer ça
la source
J'ai également eu la même erreur, la compilation avec le drapeau -D l'a corrigé, essayez ceci:
g ++ -Dstd = c ++ 11
la source
std::vector<int> v = {1, 2, 3};
pour tester et il jetait toutes sortes d'erreurs dessus (erreurs différentes de celles sans le drapeau, assez intéressant).-D
argument de ligne de commande équivaut à insérer un#define
dans votre code source. Donc, cette commande est comme avoir#define std c++11
. Pouvez-vous imaginer commentstd::string
sera redéfinic++11::string
? Pas très utile du tout.