web-dev-qa-db-fra.com

Comment activez-vous la syntaxe C++ 11 dans Eclipse Neon?

Je développe un code C + 11 dans Eclipse Neon et constate aujourd'hui que la plage basée sur la boucle introduite dans C + 11 est surlignée en rouge par le IDE, ce qui indique qu'elle ne le reconnaît pas.

J'ai trouvé plusieurs liens sur la manière de procéder pour les anciennes versions de CDT, tels que celui-ci ( Eclipse CDT support C++ 11/C++ 0x ). Vous pouvez voir qu'il n'y a pas d'onglet "Paramètres de l'outil".

 enter image description here

Quelqu'un peut-il suggérer comment configurer mon projet pour que la syntaxe C++ 11 soit correctement mise en surbrillance (j'utilise un système de construction séparé)

18
CPayne
  1. Faites un clic droit sur votre projet et cliquez sur Propriétés
  2. Accédez aux chemins, macros, etc. à inclure dans le général et le préprocesseur C/C++.
  3. Sélectionnez l'onglet Fournisseurs, cliquez sur la ligne des paramètres du compilateur pour le compilateur que vous utilisez.
  4. Ajoutez -std = c ++ 11 à la commande pour obtenir les spécifications du compilateur.
  5. Appliquer les modifications.

Ressemblera à quelque chose comme ceci:

${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11
38
Andreas DM

Vous pouvez aussi faire ce qui suit

  1. aller aux propriétés du projet (alt entrer)
  2. Dans le volet de gauche, faites défiler jusqu'à "C/C++ Build", réduisez-le, sélectionnez paramètres. 
  3. Dans le volet de droite, sélectionnez et réduisez votre compilateur dans le menu Outils , Sélectionnez "Dialecte", choisissez votre langue standard dans le menu déroulant Ou entrez -std = c ++ 11 dans "autre dialecte flags "text input.

Alternativement

  1. Propriétés -> "Génération C/C++" -> Réduire et sélectionner "Paramètres"
  2. Sous l'onglet Paramètres de l'outil, sélectionnez votre compilateur et mettez en surbrillance le champ "Divers".
  3. ajoutez -std = c ++ 11 au champ de saisie "Autres drapeaux".
5
mancini0

Pour des raisons que je ne comprends pas, lorsqu’il a cherché des indices sur les raisons pour lesquelles mon Eclispe Oxygen + CDT 9.3.2 fonctionnant sur Fedora 27 ne pouvait pas déboguer mon code de façon fiable, Google a posé cette question/réponse comme un élément à examiner. 

En gros, mon problème est qu’un programme assez simple C++, utilisant les fonctionnalités de C++ 11 (en particulier shared_ptr), ne pouvait pas être débogué dans Eclipse Oxygen 2 + CDT 9.3.2 au-dessus de Fedora 27 (avec gdb version 8.0.1 installée à partir du paquet standard repo). Entrer dans quelques appels de méthode a abouti à une session de débogage bloquée; rien ne se passe, arrêtez Eclipse pour récupérer. 

Si je déboguais le binaire en utilisant gdb sur la ligne de commande, tout allait bien; Je pouvais définir des points d'arrêt, etc., tout fonctionnait comme il se doit. Mais de l'intérieur d'Eclipse, rien ne se passe.

Cependant, mettre -std = c ++ 11 dans les paramètres du projet, comme indiqué par Andreas, a résolu le problème. J'ai très peu idée pourquoi. Je pensais mettre cela en place au cas où quelqu'un rencontrerait un problème similaire.

g ++ est à la version 7.2.1

1
bazza

Pour une raison quelconque, l'édition des paramètres globaux du compilateur c ++ ne fonctionnait pas pour moi. Suivre les instructions pour modifier le paramètre spécifique au projet a fonctionné. Voir: Prise en charge d’Eclipse CDT C++ 11/C++ 0x

0
ragerdl