2015-11-22 2 views
0

J'utilise le NSight Eclipse Edition et certains membres [ici detach()] ne peuvent pas être résolus même si le projet compile bien.Eclipse: La méthode std :: thread.detach() n'a pas pu être résolue

Le message d'erreur apparaît dans la version 7.0 et 7.5.

enter image description here

MISE À JOUR: OK; J'ai trouvé dans le comprennent thread est au début de cette vérification:

#if __cplusplus < 201103L 
# include <bits/c++0x_warning.h> 
#else 

et parce que __cplusplus est à Nsight défini comme ceci:

enter image description here

donc le #if est analysé et les membres ne sont pas trouvés - qui sont définis dans la section #else.

Je ne peux pas définir la valeur dans Eclipse, car dans la fenêtre Preprocessor include Paths, Macros etc. les boutons sont désactivés et la note est affichée:

enter image description here

Toute idée comment mettre à jour la valeur __cplusplus?

+0

Avez-vous essayé la mise en C++ 11 compilation option dans l'édition nsight eclipse? Si cela ne vous aide pas, vous pouvez essayer '#undef __cplusplus' et' #define __cplusplus = 201103L' juste avant d'inclure 'thread'. Vous voudrez peut-être conditionner ce comportement sur l'analyse de l'éditeur nsight EE, je suppose qu'il y a une macro définie pour cela. –

+0

@RobertCrovella 1) C++ 11 est défini; 2) J'ai aussi défini ma propre valeur '__cplusplus' dans la source. Mais ce n'est pas vraiment une bonne solution. J'ai trouvé alors dans les paramètres Eclipse un moyen de changer la valeur de '199711L' à' 201103L' -> Cela fonctionne maintenant comme un charme. J'ai écrit à propos de ces gars de Nvidia et j'attends leur réponse. Quand ils me confirmeront, je répondrai à cette question avec la solution. –

Répondre

1

S'il vous plaît mettre _cplusplus à 201103L dans "Symboles" onglet "C/C++ General" -> volet "Chemins et symboles", comme le montre la capture d'écran ci-dessous: Updating __cplusplus define value in Nsight's Path and Symbols pane

+0

Oui, c'était ma solution car j'ai écrit Robert Crovella dans un commentaire dans cette question. Comme vous m'avez écrit dans l'e-mail, ce n'est qu'une solution de contournement jusqu'à ce que Nvidia le corrige dans l'une des prochaines versions. Dans la version 7.5 de NSight sont d'autres problèmes. J'ai dû supprimer le répertoire '.metadata' et créer un tout nouveau projet. Il y avait vraiment un comportement très étrange. Vérifiez mes autres questions accessibles depuis mon profil. PS: le 20114L est une erreur - n'est-ce pas? Devrait être 201103L ... –