web-dev-qa-db-fra.com

Chemin du projet Eclipse CDT non valide

J'ai un projet C construit à l'aide d'un fichier makefile. Eclipse m'avertit en permanence du message "Chemin de projet non valide: entrées de chemin dupliquées", mais je n'arrive pas à comprendre ce qu'il veut que je fasse. Je voudrais désactiver cet avertissement et continuer ma vie.

Mon application est compilée et fonctionne bien, sans aucun avertissement, sauf celui-ci. En tant que développeur consciencieux, je tiens à résoudre ce problème afin d’obtenir les fuzzs chauds que seule une version propre peut apporter.

40
David Martin

Cela a fonctionné pour moi avec Eclipse 3.7.2 et CDT 8.0.2:

  1. Ouvrez les propriétés du projet | Construction C/C++ | Options de découverte.
  2. Cliquez sur le bouton Effacer les entrées découvertes maintenant:.
  3. Reconstruire.

Cela semble être une nouvelle fonctionnalité de CDT 8. Je rencontre ce problème depuis plusieurs années «Chemin de projet non valide: entrées de chemin dupliquées». Il s’agit apparemment de la nouvelle solution proposée.

Avant cela, il y avait des chemins en double sous C/C++ Général | Chemins et Symboles | Comprend un onglet. Je ne pouvais pas m'en débarrasser. Ils n'apparaissent que lorsque l'option Afficher les valeurs intégrées est cochée, de sorte qu'elles sont apparemment générées d'une manière ou d'une autre. Après avoir effectué ce qui précède, ils ont été remplacés par un jeu qui n’avait pas de doublons. La seule différence est que les mêmes paramètres sont apparus sous Assembly, GNU C et GNU C++. Auparavant, ils étaient des ensembles différents. Ceux de l'Assemblée étaient vides, par exemple.

Jusqu'à présent, le problème n'est pas revenu. 

30
Kenneth Evans

Ce problème est une vraie douleur à gérer. Ça ne marche pas très bien.

Ceci est applicable à Eclipse 3.4.1/CDT 5.0.1

D'après ce que je peux dire, lorsque vous créez un "projet C/C++" dans CDT, il essaiera de détecter automatiquement vos chemins d'inclusion. Excellente idée, mais la mise en œuvre est horrible.

Si vous supprimez ou renommez un répertoire, l'ancien répertoire reste. Si vous renommez le projet, l'ancien répertoire reste. Lorsque Eclipse ne peut pas trouver cet ancien répertoire, il vous avertit.

Ma solution désactive complètement la découverte automatique et gère manuellement mes chemins d'accès inclus. Vous avez besoin de cette liste de chemins d’inclusion pour des opérations telles que ctrl-clic (navigation automatique vers les définitions/functions/files/etc) et l’ombrage des blocs #define. Il construit l'index de cette liste.

Voici ce qu'il vous faut faire:

Maintenant, allez dans C/C++ Général -> Chemins et symboles Vous verrez sous l’onglet Comprend les langages Assemblé, C et C++ avec les répertoires d’inclusion auto-découverts correspondants . Allez dans les 3 langues et supprimez tout .Ouvrez votre makefile et transcrivez vos includes dans la langue correspondante . Un changement de nom de projet provoquera toujours la rupture de l'indexeur. $ {nom_projet} et les autres globales ne semblent pas fonctionner. Si vous rencontrez des problèmes, utilisez le bouton "Espace de travail" pour accéder au répertoire que vous souhaitez inclure, car cela semble toujours fonctionner, mais le saisir manuellement NE PAS . Cliquez sur Appliquer, puis sur OK . Faites un clic droit votre projet, allez à index-> ​​reconstruire Redémarrez Eclipse.

Cela devrait réparer les choses pour toujours. Chaque fois que quelque chose est incorrectement masqué à cause d'un bloc #define ou #ifdef, c'est parce que cette liste de fichiers est obsolète. Vous saurez également que cette liste est obsolète si vous obtenez des "inclusions non résolues" sur les lignes #include.

Doug Schaefer, j'espère que Google indexe ceci, vous trouvez votre nom et vous corrigez cette implémentation affreuse. =)

27
Jeff Lamb

J'ai trouvé ce rapport de bogue pour résoudre mon problème. J'avais déménagé certains chemins d'accès et je ne pouvais pas me débarrasser des anciens chemins.

J'ai aussi vu ce problème, d'anciens chemins ne sont jamais supprimés. Pour corriger manuellement le fichier fichier que vous devez déplacer/supprimer le Fichier $ {nom du projet} .sc trouvé sous $ {workspace} /. metadata/.plugins/org.Eclipse.cdt.make.core

https://bugs.Eclipse.org/bugs/show_bug.cgi?id=206372

12
EJ.

Utiliser Eclipse Luna et CDT 8.5

J'ai résolu le problème par

  1. Ouvrez les propriétés du projet | C/C++ Général | Chemins et Symboles
  2. Regardez l'onglet Source Location, j'avais renommé un répertoire et il n'était pas mis à jour dans cette liste.
  3. Reconstruire
3
mark

Ici, je viens de trouver un autre moyen de re-détecter automatiquement le chemin:

  1. Ouvrir "Paramètres de l'espace de travail-> C/C++ -> Construire -> Paramètres -> Découverte"
  2. Trouver "Paramètres du compilateur intégré au CDT [Shard]"
  3. Cliquez sur "Effacer les entrées" et sur le bouton "Réinitialiser" à droite
  4. Reconstruire les projets et terminé

J'espère que cela aidera.

Référence: http://qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html

1
Ethan

Voici une réponse tardive pour Eclipse 4.4 (qui n’a pas d’option de découverte).

Supprimez le fichier infoPath du projet. Eclipse ou le plugin ADT (vous ne savez pas lequel) va le recréer et le remplir avec les chemins corrects.

Vous pouvez trouver le fichier infoPath du projet à <Eclipse workspace>/.metadata/.plugins/com.Android.ide.Eclipse.ndk/<project>.pathInfo.

I think Eclipse ou le plug-in ADT détermine les nouveaux chemins à partir de deux emplacements: (1) le répertoire NDK défini dans les préférences Eclipse et (2) les chemins dans Application.mk. Tous ces chemins deviennent des chemins "intégrés" sous Eclipse.

Voir aussi Comment changer les chemins intégrés C/C++ pointant vers une installation supprimée Android-ndk-r9?

0
jww

Vous devriez vérifier si vous avez défini manuellement un symbole qu'Eclipse peut comprendre à partir de votre makefile. J'ai un projet qui a un makefile écrit manuellement et le problème a été résolu en supprimant les symboles que j'avais ajoutés manuellement à C/C++ Général -> Chemins et symboles -> Symboles.

0
Dick

Pas besoin de supprimer .metadata mecs, il suffit de supprimer tous les chemins situés dans C/C++ Général -> Chemins et symboles -> Symboles et de les remplacer en utilisant click buttom chemin manuellement

0
bouum

Cela ressemble à un bug dans CDT.

Si vous voulez vraiment vous en débarrasser, vous devriez essayer de vous débarrasser des espaces dans le chemin du projet. cela a été suggéré dans un résultat de recherche pour l'erreur. Si cela ne fonctionne pas, vous pouvez essayer d'ouvrir le fichier .cproject (où se trouvent tous les paramètres CDT) et vérifier le chemin réel avec les entrées en double.

0
aib