Ich verwende CDT in Eclipse 3.5.2 Galileo in Ubuntu.
Der Indexer meiner Eclipse funktioniert manchmal nicht. Damit meine ich, wenn ich ctrl
auf eine Funktion klicke, heißt es Could not find symbol in index
. Wenn Sie auf die Taste F3 klicken, wird dieselbe Fehlermeldung angezeigt. An den meisten Orten funktioniert es nicht und funktioniert an sehr wenigen Orten.
Ich habe einige andere Versionen von Eclipse gesehen, wo unter Datei ein Menüpunkt für die Indizierung aufgeführt ist. Wie File-> Indexer-> Rebuild .... Aber in meinem Dateimenü gibt es keinen solchen Menüpunkt für den Indexer.
Wird die einzige Möglichkeit sein, eine andere Version von Eclipse zu verwenden, oder fehlt etwas? Jegliche Hinweise dazu wären hilfreich.
In meinem Fall hat nichts funktioniert und zuletzt habe ich Folgendes getan:
1) Close the project
2) Delete the project(do not check from disk option)
3) create new project with existing code(use the deleted project path)
4) Successfully indexed my c++ code
Gehen Sie folgendermaßen vor, um Pfade mit Code zum Analysieren hinzuzufügen:
1. Klicken Sie mit der rechten Maustaste auf das Projekt
2. Wählen Sie Eigenschaften aus
3. Gehen Sie zu C/C++ General
4. Gehen Sie zu Pfad und Symbolen
5. Wenn die Pfade fehlen, fügen Sie Pfade hinzu.
Gehen Sie folgendermaßen vor, um den Code erneut zu analysieren:
1. Klicken Sie mit der rechten Maustaste auf das Projekt
2. Wählen Sie Index aus
3. Wiederaufbau
Wenn dies nicht funktioniert, haben Sie kein Glück. c ++ ist eine sehr schwer zu analysierende Sprache.
Wenn Ihr Indexer stecken bleibt und unendliche Zeit blockiert, können Sie die mit dem Indexer verknüpften Dateien Ihres Projekts aus .metadata
löschen. Stellen Sie sicher, dass Eclipse in der Zwischenzeit nicht läuft.
Das Verzeichnis .metadata
befindet sich als versteckter Ordner im Pfad Ihres Arbeitsbereichs.
Dort können Sie navigieren zu:
<workspace_path>/.metadata/.plugins/org.Eclipse.core.runtime/.settings/
Innerhalb des .settings/
-Verzeichnisses befinden sich .prefs
-Dateien, in denen die Voreinstellungen jedes Projekts einzeln gespeichert werden.
Zum Beispiel: org.Eclipse.cdt.core.prj-test-project.prefs
speichert die Einstellungen des Projekts test-project
Öffnen Sie diese Datei mit dem Texteditor und entfernen Sie alle Zeilen, die mit indexer
beginnen. Dadurch werden die Indexereinstellungen für dieses bestimmte Projekt auf die Standardeinstellungen zurückgesetzt.
Alternativ können Sie alle Zeilen entfernen, die mit indexer
beginnen, und zwar aus org.Eclipse.cdt.core.prefs
; Dadurch werden die Indexer-Einstellungen für den gesamten Arbeitsbereich zurückgesetzt.
Ich glaube, Sie können den Index löschen, indem Sie Folgendes ausführen:
rm .metadata/.plugins/org.Eclipse.jdt.core/*.index
Und dann Eclipse neu starten. Der Index wird dann neu erstellt.
Dies funktionierte für mich in einem Java-Projekt, aber ich stelle mir vor, dass es für alle (die meisten?) Projekttypen denselben Index gibt.
Hier ist die Lösung, die ich verwendet habe, nachdem Project->C++ Index->Rebuild
fehlgeschlagen ist. Dieser Trick verhindert, dass Sie Ihr aktuelles Projekt löschen:
1) Copy the current project (Right click->Copy from Project Explorer)
2) Paste it (Right click->Paste from Project Explorer) and give the copy another name
3) The indexer should now start and index both projects
4) When indexation is complete, you can delete the copy
PS: Stellen Sie sicher, dass es sich bei Ihrem ursprünglichen Projekt um ein tatsächliches C++ - Projekt handelt. Andernfalls funktioniert es offensichtlich nicht.
Sie können versuchen, den Index neu zu erstellen. Klicken Sie mit der rechten Maustaste auf das Projekt in der Projektansicht. Dann Index -> Rebuild
.
Bei mir hat das geklappt:
Ich hoffe es hilft niemandem.
Konvertieren Sie ein Projekt in C oder C++ :
Right click on project
: Neu> In C/C++ - Projekt konvertieren
In "Convert to C or C++"
: Wählen Sie C/C++ - Projekt
In "Project options":
Aktivieren Sie "Projekttyp angeben".
...Project Type:
Wähle "Makefile-Projekt"
...Toolchains:
Brutto-GCC
Ich hatte das gleiche Problem und es stellte sich heraus, dass der Indexordner im Besitz von root war (ich habe Eclipse aus irgendeinem Grund einmal als Root ausgeführt). Ich habe den Projektordner mit Sudo chown -R username projectfolderpath
zurückgefordert und das Problem gelöst.
Die obigen Schritte haben für mich funktioniert.