59 votes

Erreur C++ "nullptr n'a pas été déclaré dans cette portée" dans l'EDI Eclipse

J'utilise Eclipse Helios et j'ai installé g++-4.6. J'espère que je ne me trompe pas et que g++4.6 implémente les fonctionnalités de C++ 11. J'ai créé un projet C++ qui utilise les mots-clés nullptr et auto. Le build donne les erreurs suivantes:-

../{filename}.cpp:13:13: error: ‘nullptr’ was not declared in this scope

../{filename}.cpp:14:2: warning: ‘auto’ will change meaning in C++0x; please remove it [-Wc++0x-compat]

En fait, il se construisait bien jusqu'à hier. Aujourd'hui, je les reçois de nulle part. Veuillez m'aider à résoudre ce problème.

60voto

Rob I Points 2750

Selon le Page GCC pour C++11 :

Pour activer le support 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 plus supporte également -std=c++11 et -std=gnu++11.

Avez-vous compilé avec -std=gnu++0x ?

22voto

Vivek Ragunathan Points 429

J'ai enfin trouvé ce qu'il faut faire. J'ai ajouté l'argument du compilateur -std=c++0x sous Project Properties -> C/C++ Build -> Settings -> GCC C++ Compiler -> Miscellaneous. Cela fonctionne maintenant !

Mais comment ajouter ce drapeau par défaut pour tous les projets C++ ? Quelqu'un ?

6voto

The Beast Points 1445

Vous utilisez la version 4.6 de g++, vous devez invoquer l'option -std=c++0x pour compiler.

g++ -std=c++0x *.cpp -o sortie

4voto

josephthomas Points 2404

S'agit-il d'une erreur de compilateur ou d'une erreur d'analyse de code ? Parfois, l'analyse de code peut être un peu sommaire et signaler des erreurs non valides.

Pour désactiver l'analyse de code pour le projet, cliquez avec le bouton droit de la souris sur votre projet dans l'explorateur de projet, cliquez sur Propriétés, puis allez sur l'onglet Général C/C++, puis Analyse de code. Cliquez ensuite sur "Utiliser les paramètres du projet" et désactivez ceux que vous ne souhaitez pas.

Par ailleurs, êtes-vous sûr de compiler avec le compilateur C++11 ?

3voto

Leon Points 94

Allez dans Paramètres -> Compilateur... Et ajoutez l'option "Faire en sorte que g++ suive le futur standard de langage C++0x ISO C++ [std=c++0x]".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X