Erreur c++ 'nullptr n'a pas été déclaré dans cette portée' dans Eclipse IDE

Je cours Eclipse Helios et j'ai g++-4.6 installé. J'espère que je ne me trompe pas que g ++ 4.6 implémente les fonctionnalités C++ 11. J'ai créé un projet c++ qui utilise les mots-clés nullptr et auto. La construction 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, ça se construisait bien jusqu'à hier. Je les reçois de nulle part aujourd'hui. Merci de m'aider à résoudre ce problème.

47
demandé sur N.N. 2012-04-05 21:45:53

7 réponses

Selon la page GCC pour C++11:

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 prennent également en charge-std=C++11 et-std=gnu++11.

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

47
répondu Rob I 2012-04-05 17:49:47

Enfin découvert ce qu'il faut faire. Ajout de l'argument-std=C++0x compilateur sous Propriétés du projet - > C / C++ Build - > paramètres - > GCC C++ compilateur - > Divers. Il travaille maintenant!

Mais comment ajouter cet indicateur par défaut pour tous les projets c++? Quelqu'un?

16
répondu Vivek Ragunathan 2012-04-06 11:12:39

Est - ce une erreur de compilateur réelle ou une erreur d'analyse de Code? Parfois, l'analyse du code peut être un peu sommaire et signaler des erreurs non valides.

Pour désactiver l'analyse de code pour le projet, faites un clic droit sur votre projet dans L'Explorateur de Projets, cliquez sur Propriétés, puis allez dans 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.

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

4
répondu josephthomas 2012-04-05 17:48:47

Allez dans Paramètres - > compilateur... Et ajoutez un drapeau à " avoir g++ Suivre la prochaine norme de langage C++ISO C++ 0x [std=C++0x]

3
répondu Leon 2015-12-13 00:48:48

Vous utilisez la version g ++ 4.6 vous devez appeler le flag-std = C++0x pour compiler

G++ - std=C++0x *.cpp-O Sortie

0
répondu The Beast 2015-08-11 11:37:12

J'ajoute le", - std = c++0x "après" - c-fmessage-length = 0 " ,sous Propriétés du projet - > C / C++ Build - > paramètres - > compilateur GCC c++ - > Divers. N'oubliez pas d'ajouter la virgule "," comme séparateur.

0
répondu qie 2016-07-09 06:40:37

Essayer avec une version différente de gcc a fonctionné pour moi-gcc 4.9 dans mon cas.

0
répondu JobJob 2018-03-09 11:18:54