webentwicklung-frage-antwort-db.com.de

Eclipse CDT Ungültiger Projektpfad

Ich habe ein C-Projekt, das mit einem Makefile erstellt wird. Eclipse warnt ständig vor "Ungültiger Projektpfad: Doppelte Pfadeinträge", aber ich kann nicht herausfinden, was zum Teufel ich tun möchte. Ich möchte diese Warnung deaktivieren und mit meinem Leben fortfahren.

Meine Anwendung kann kompiliert werden und läuft einwandfrei, abgesehen von dieser Warnung keine einzige Warnung. Als gewissenhafter Entwickler möchte ich dieses Problem beheben, so dass ich die warmen Fuzzys nur mit einem sauberen Build bringen kann.

40
David Martin

Dies funktionierte bei mir mit Eclipse 3.7.2 und CDT 8.0.2:

  1. Öffnen Sie die Projekteigenschaften | C/C++ Build | Erkennungsoptionen.
  2. Klicken Sie auf die Schaltfläche von Gefundene Einträge jetzt löschen :.
  3. Wiederaufbau.

Es scheint eine neue Funktion in CDT 8 zu sein. Ich hatte seit Jahren das Problem "Ungültiger Projektpfad: Doppelte Pfadeinträge", und dies ist offensichtlich die neu bereitgestellte Lösung.

Zuvor gab es doppelte Pfade unter C/C++ General | Pfade und Symbole | Enthält eine Registerkarte. Ich konnte diese nicht loswerden. Sie werden nur angezeigt, wenn die Option Eingebaute Werte anzeigen aktiviert ist. Sie werden also scheinbar irgendwie generiert. Nach dem oben genannten wurden sie durch ein Set ersetzt, das keine Duplikate hatte. Der einzige Unterschied besteht darin, dass dieselben Einstellungen unter Assembly, GNU C und GNU C++ angezeigt wurden. Zuvor waren sie unterschiedliche Sets. Die für Assembly waren zum Beispiel leer.

Bisher ist das Problem nicht zurückgekehrt. 

30
Kenneth Evans

Dieses Problem ist sehr schmerzvoll. Es funktioniert nicht sehr gut.

Dies gilt für Eclipse 3.4.1/CDT 5.0.1

Soweit ich feststellen kann, wenn Sie ein "C/C++ - Projekt" in CDT erstellen, wird versucht, die Include-Pfade automatisch zu erkennen. Tolle Idee, aber die Umsetzung ist schrecklich.

Wenn Sie ein Verzeichnis löschen oder umbenennen, bleibt das alte Verzeichnis übrig. Wenn Sie das Projekt umbenennen, bleibt das alte Verzeichnis übrig. Wenn Eclipse das alte Verzeichnis nicht finden kann, wird Ihnen diese Warnung angezeigt.

Meine Lösung besteht darin, die automatische Erkennung vollständig zu deaktivieren und meine Include-Pfade manuell zu verwalten. Sie benötigen diese Liste von Include-Pfaden für Dinge wie Strg-Klick (automatisches Navigieren zu Defines/Functions/files/etc) und Ausblenden von #define-Blöcken. Es baut den Index aus dieser Liste auf.

Was Sie tun müssen, ist Folgendes: Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf Ihr Projekt und gehen Sie zu den Eigenschaften . Gehen Sie zu C/C++ - Erstellen -> Ermittlungsoptionen Deaktivieren Sie "Automatisches Erkennen von Pfaden und Symbolen".

Gehen Sie jetzt zu C/C++ Allgemein -> Pfade und Symbole Sie werden unter den Registerkarten Assembly, C und C++ mit den automatisch erkannten Include-Verzeichnissen ..__ angezeigt. Gehen Sie zu allen 3 Sprachen und löschen Sie allesÖffnen Sie Ihr Makefile und transkribieren Sie Ihre Includes in die entsprechende Sprache . Bei einer Projektumbenennung wird der Indexer immer noch beschädigt. $ {Projektname} und andere Globals scheinen nicht zu funktionieren. Wenn Sie Probleme haben, verwenden Sie die Schaltfläche "Arbeitsbereich", um zu dem Verzeichnis zu navigieren, das Sie einschließen möchten, da dies immer zu funktionieren scheint. Die manuelle Eingabe erfolgt jedoch NICHT .. Klicken Sie auf "Übernehmen" und anschließend auf "OK". Klicken Sie mit der rechten Maustaste Gehen Sie zu Index-> ​​Neuaufbau Starten Sie Eclipse neu.

Dies sollte die Dinge für immer beheben. Jedes Mal, wenn durch einen #define- oder #ifdef-Block etwas unpassend ausgeblendet wird, liegt dies daran, dass die Liste der Dateien veraltet ist. Sie wissen auch, dass die Liste veraltet ist, wenn Sie in # include-Zeilen "nicht aufgelöste Einschlüsse" erhalten.

Doug Schaefer, hoffentlich indiziert Google das, Sie finden Ihren Namen und beheben diese schreckliche Implementierung. =)

27
Jeff Lamb

Ich habe diesen Fehlerbericht gefunden, um meinem Problem zu helfen. Ich hatte einige Include-Pfade verschoben und konnte die alten Pfade nicht loswerden.

Ich habe auch dieses Problem gesehen, alte Pfade werden niemals gelöscht. So beheben Sie manuell die Datei, die Sie zum Verschieben/Löschen des $ {Projektname} .sc-Datei unter .__ gefunden. $ {workspace} /. metadata/.plugins/org.Eclipse.cdt.make.core

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

12
EJ.

Verwenden von Eclipse Luna und CDT 8.5

Ich habe das Problem mit behoben

  1. Öffnen Sie die Projekteigenschaften | C/C++ Allgemeines | Pfade und Symbole
  2. Schauen Sie sich die Registerkarte Quellspeicherort an. Ich hatte ein Verzeichnis umbenannt und es wurde in dieser Liste nicht aktualisiert.
  3. Wiederaufbau
3
mark

Hier habe ich gerade einen anderen Weg gefunden, den Pfad automatisch wieder zu erkennen:

  1. Öffnen Sie "Arbeitsbereich-Einstellungen -> C/C++ -> Erstellen -> Einstellungen -> Erkennung".
  2. Suchen Sie nach "CDT Build-In-Compiler-Einstellungen [Shard]"
  3. Klicken Sie rechts auf "Einträge löschen" und "Zurücksetzen"
  4. Projekte neu erstellen und fertig

Hoffe das wird helfen.

Referenz: http://qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html

1
Ethan

Hier ist eine späte Antwort für Eclipse 4.4 (die keine Discovery-Option hat).

Löschen Sie die infoPath-Datei des Projekts. Eclipse oder das ADT-Plugin (nicht sicher, welches), erstellt es neu und füllt es mit den richtigen Pfaden.

Die infoPath-Datei des Projekts finden Sie unter <Eclipse workspace>/.metadata/.plugins/com.Android.ide.Eclipse.ndk/<project>.pathInfo.

I think Eclipse oder das ADT-Plugin bestimmt die neuen Pfade an zwei Stellen: (1) das unter Eclipse-Voreinstellungen eingestellte NDK-Verzeichnis und (2) Pfade in Application.mk. Alle diese Pfade werden unter Eclipse zu "eingebauten" Pfaden.

Siehe auch Wie kann man integrierte C/C++ - Pfade ändern, die auf eine gelöschte Android-ndk-r9-Installation verweisen?

0
jww

Sie sollten prüfen, ob Sie manuell ein Symbol definiert haben, das Eclipse aus Ihrem Makefile herausfinden kann. Ich habe ein Projekt, das über ein manuell geschriebenes Makefile verfügt, und das Problem wurde durch das Entfernen von Symbolen behoben, die ich manuell in C/C++ Allgemein -> Pfade und Symbole -> Symbole hinzugefügt hatte.

0
Dick

Keine Notwendigkeit, .metadata-Typen zu entfernen. Löschen Sie einfach alle in C/C++ Allgemein -> Pfade und Symbole -> Symbole befindlichen Pfade und ersetzen Sie sie durch Klicken mit der Schaltfläche buttom Pfad manuell

0
bouum

Es scheint ein Fehler in CDT zu sein.

Wenn Sie es wirklich loswerden möchten, sollten Sie versuchen, die Leerzeichen im Projektpfad zu entfernen. Dies wurde in einem Suchergebnis für den Fehler vorgeschlagen. Wenn dies nicht funktioniert, können Sie versuchen, die .cproject-Datei zu öffnen, in der alle CDT-Einstellungen liegen, und nach einem tatsächlichen Pfad mit doppelten Einträgen suchen.

0
aib