25 Stimmen

Wie kann ich Eclipse dazu bringen, einen gesamten C/C++-Quellbaum zu indizieren, der mehrere "Make-Projekte" enthält?

Ich habe Probleme, Eclipse dazu zu bringen, meinen Quellcode zu indizieren. Ich verwende Eclipse Helios auf Windows XP im Moment.

Ich habe ein Verzeichnis namens src. Innerhalb dieses Verzeichnisses habe ich eine Reihe von Verzeichnissen, etwa so:

 src
   -include (common headers)
   -lib
     -libIO (source code for this library)
     -libGUI  (source code for this library)
   -pgms
     -pgm1  (source code and headers for this pgm)
     -pgm2  (source code and headers for this pgm)

Jedes Blatt hat sein eigenes Makefile. Es gibt kein Makefile auf oberster Ebene in src. pgm1 kann und wird Dateien aus include und lib/libIO und lib/libGUI einbinden.

Im Grunde möchte ich, dass Eclipse mein gesamtes src-Verzeichnis indiziert, ohne dass ich für jedes Blatt in meinem Baum ein C/C++-Projekt einrichten muss. Ich kann keine Möglichkeit finden, dies zu erreichen.

Hier sind meine Symptome; was ich zu lösen versuche:

Wenn ich den Quellcode im pgm1-Verzeichnis bearbeite, verweist er auf Funktionen, die in meinen Include-Verzeichnis-Header-Dateien deklariert und in Quelldateien in lib/libIO definiert sind.

Wenn ich jedoch F3 drücke, um zur Deklaration einer Funktion zu gelangen, meldet Eclipse "Could not find symbol 'X' in index". Ich kann Eclipse anscheinend nicht dazu bringen, entweder die Header-Deklaration oder die Quellendefinition für die Methode unter meinem Cursor zu finden (wie es das Java-Modul perfekt tut). Ist dies möglich?

31voto

MHD Punkte 311

Ich hatte genau dasselbe Problem wie OP, aber aus irgendeinem Grund waren die Menüs in Eclipse, die ich verwendete (Helios Service Release 2), nicht "Gehe zu Eigenschaften -> C/C++ Allgemein -> Pfade und Symbole -> Quellenspeicherort".

Ich habe das Problem folgendermaßen gelöst:

  • Klicken Sie in der C/C++-Ansicht mit der rechten Maustaste auf den oberen Projektnamen;
  • Wählen Sie im Menü Neu->C++ Projekt;
  • Wählen Sie in dem daraufhin angezeigten Fenster die Option Konvertieren in und dann das C++-Projekt;
  • Klicken Sie auf OK, um das Fenster zu schließen.

Eclipse wird sofort mit der Indizierung beginnen. Je nach Größe des Quellbaums kann es eine Weile dauern, aber danach wird die Indizierung endlich funktionieren.

11voto

Somabho Punkte 111

Ich war in einer ähnlichen Situation. Ich habe es folgendermaßen gelöst: Rechtsklick auf das Projekt in Projekt View-->select Index-->rebuild.

5voto

Gordon Punkte 1180

Es ist mir gelungen, dieses Problem dank der Kommentare hier zu lösen: .... Am Ende habe ich mein Projekt neu erstellt. Ich verwendete die Importmethode, um ein Projekt aus dem CVS herunterzuladen, und wies den Assistenten für neue Projekte an, dies zu tun. Im Dialogfeld "Neues Projekt" habe ich angegeben, dass es sich um ein C++-Projekt handelt, und die Indizierung funktioniert jetzt einwandfrei.

Ich wünschte immer noch, ich könnte Dateien indizieren, ohne sie mit einem bestimmten Projekttyp verbinden zu müssen, aber zumindest habe ich eine Lösung gefunden.

Vielen Dank für die Hilfe.

4voto

CppChase Punkte 863

Beenden Sie Eclipse. Gehen Sie im Arbeitsbereich zu ".metadata/.plugins/org.eclipse.cdt.core" und löschen Sie alles dort.

3voto

user3727512 Punkte 31

Klicken Sie im Projekt-Explorer-Panel mit der rechten Maustaste auf das Projekt, das Sie neu indizieren möchten, wählen Sie Index und dann die gewünschte Aktion aus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X