web-dev-qa-db-fra.com

cc1plus: erreur: option de ligne de commande non reconnue "-std = c ++ 11" avec g ++

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.
82
user1382306

En voyant votre version de G ++, vous devez la mettre à jour de manière incorrecte. 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, vous pouvez utiliser -std=c++11.

99
antonijn

Citant le site web gcc :

Les fonctionnalités C++ 11 sont disponibles dans le compilateur GCC "principal" dans le coffre du référentiel Subversion de GCC et dans GCC 4.3 et versions ultérieures. Pour activer la prise en charge de C++ 0x, ajoutez le paramètre de ligne de commande -std = c ++ 0x à votre ligne de commande g ++. Ou, pour activer les extensions GNU en plus des extensions C++ 0x, ajoutez -std = gnu ++ 0x à votre ligne de commande g ++. GCC 4.7 et versions ultérieures supportent également -std = c ++ 11 et -std = gnu ++ 11.

Donc, vous utilisez probablement une version de g ++ qui ne supporte pas -std=c++11. Essayez -std=c++0x à la place.

La disponibilité des fonctionnalités C++ 11 concerne uniquement les versions> = 4.3.

14
stefan

tu devrais essayer ça

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