2013-04-28 5 views
14

Da ich von Eclipse Indigo auf Juno (Ubuntu 12.04) aktualisiert habe, hatte ich das Problem, wo es "unaufgelöste Einschluss" Fehler für Standard-Bibliotheken (z. B. neben #include <iostream> und #include <vector>, etc.), obwohl das Programm baut und läuft gut (mit g ++). Dies tritt nur in neuen Projekten auf, die mit Juno erstellt wurden, nicht in alten Projekten von Indigo in meinem Arbeitsbereich.Eclipse Juno mit CDT keine integrierten Include-Verzeichnisse

Dank einiger anderer SO-Fragen (siehe unten *) konnte ich die Ursache des Problems auf das Fehlen der "eingebauten Werte" in den Eigenschaften> C/C++ Allgemein> Pfade und Symbole eines Projekts zurückführen > Inklusive tab:

/usr/include/c++/4.6 
/usr/include/c++/4.6/x86_64-linux-gnu 
/usr/include/c++/4.6/backward 
/usr/lib/gcc/x86_64-linux-gnu/4.6/include 
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed 
/usr/include/x86_64-linux-gnu 
/usr/include 

vorhanden sind, wenn der Schalter „Einbau-Werte“ Checkbox in meinen alten Indigo Projekten markiert ist, dass dieses Problem nicht haben, aber in meinen neuen Projekten erstellt mit Juno fehlen. Wenn ich diese sieben Verzeichnisse in den Projekteinstellungen manuell zur Registerkarte "Includes" hinzufüge, verschwindet das Problem. Aber ich möchte das nicht für jedes neue Projekt, das ich erstelle, manuell machen müssen. Gibt es einen Grund dafür, dass dies in Juno nicht mehr der Standard ist, und gibt es eine Möglichkeit, es wiederherzustellen?

* Andere SO Fragen mit ähnlichen Fragen, die ich konsultiert habe, aber nicht mein Problem lösen:

+0

Diese Art von Problem passiert auch mit anderen Eclipse-Versionen, z. Kepler, und wie Sie vorschlagen, nicht nur beim Upgrade der Version, sondern in verschiedenen anderen Szenarien. – einpoklum

+0

Schlage vor, du akzeptierst @ languitar's Antwort, es funktioniert für mich ... – einpoklum

Antwort

12

Bitte

  • Öffnen Sie den Eclipse-Dialog Einstellungen (Fenster | Vorl).
  • Öffnen C++ | Erstellen | Einstellungen.
  • Öffnen Sie die Registerkarte Discovery.
  • Wählen Sie den integrierten Compilereinstellungen-Eintrag.
  • Drücken Sie die Taste Einträge löschen.

Anschließend sollte Eclipse die Standardwerte erneut vom Compiler anfordern.

Auf Arch Linux musste ich dies nach jeder GCC-Version ändern, weil in diesem Fall die Speicherorte für die Standardeinstellungen geändert wurden, da die Version im Ordnernamen codiert ist, und Eclipse bemerkt dies nicht.

+0

Ich habe keine Registerkarte "Discovery" in C++> Build> Einstellungen! – MSH

+0

Die Dinge haben sich in den Versionen von CDT geändert. Entweder ist Ihre Version zu alt oder in den letzten Versionen hat sich dies wieder geändert. – languitar

0

FWIW: unter der zeigt nach oben „Enthält“ Abschnitt meines Projektes im Projekt-Explorer

Ich fand, dass nach einem Projekt von einem anderen Computer zu importieren, war ich nicht irgend etwas zu bekommen. Um das zu beheben, musste ich den Ordner /workspace/project/.settings/ löschen. Für mich hatte es nur eine Datei (language.settings.xml).

Dann war alles wieder normal.