Wie kann die Linux-GCC-Toolchain von Eclipse CDT dazu gebracht werden, C ++ - Standardbibliotheks-Header aufzulösen?

12

In Ubuntu 12.04 LTS habe ich das Eclipse CDT-Plugin installiert und das neue Hallo-Welt-Projekt geöffnet, um einfach alles auszuprobieren. Als ich das Projekt erstellte, wählte ich die einzige Toolchain: "Linux GCC"

Wenn das Projekt erstellt wird, heißt es jedoch, dass

#include<iostream>
#include<cstdlb>

sind ungelöst. Daher können Zeilen mit coutund endlnicht verwendet und nicht gefunden werden std.

using namespace std; verursacht auch Probleme.

Wie kann ich meine #includeDirektiven für Standardbibliotheks-Header erkennen lassen, um Code mithilfe des stdNamespace zu unterstützen?

Muhammad Khan
quelle
Bleiben diese Fehler auch nach dem Ausführen von Project> bestehen Build All?
Eliah Kagan,
2
Möglicherweise ist dies eine dumme Frage, aber haben Sie ein neues Projekt speziell als C ++ - Projekt und nicht als C-Projekt erstellt?
Bazz

Antworten:

4

Wenn Sie das gleiche Problem hatten, vermute ich, dass Ihr Projekt zwar erstellt wird, die Code-Vervollständigung / Code-Hervorhebung jedoch fehlschlägt? Ich habe gerade einige Notizen gefunden, die nützlich sein könnten. Folgendes habe ich getan:

  • Projekt-> Eigenschaften

  • C / C ++ Allgemein

  • Pfade und Symbole

  • Wählen Sie die entsprechende Sprache

  • Klicken Sie auf "Hinzufügen" und fügen Sie die compilerversionsspezifischen Verzeichnisse hinzu

Für die Sprache 'GNU C ++' habe ich hinzugefügt:

  /usr/include
  /usr/include/c++/4.6
  /usr/include/c++/4.6/bits
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits
  /usr/include/c++/4.6/debug
  /usr/include/c++/4.6/i686-linux-gnu
  /usr/include/c++/4.6/i686-linux-gnu/bits

Für "GNU C" habe ich hinzugefügt:

  /usr/include
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits

TBH, ich denke nicht, dass alle oben genannten Verzeichnisse tatsächlich erforderlich sind (Sie könnten wahrscheinlich die "Bits" -Verzeichnisse entfernen), aber die obige Liste hat zu der Zeit für mich funktioniert.

Ich verwende jetzt Eclipse Indigo (Version 3.7.2) von eclipse.org und es findet und fügt automatisch die richtigen Include-Verzeichnisse hinzu. Die Liste ist für mich anders:

/usr/include/c++/4.6
/usr/include/c++/4.6/i686-linux-gnu
/usr/include/c++/4.6/backward
/usr/lib/gcc/i686-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
/usr/include/i386-linux-gnu
/usr/include

Füge natürlich nur die Include-Verzeichnisse hinzu, die tatsächlich auf deinem System existieren ;-)

jamesodhunt
quelle
Nun, das funktioniert bei mir nicht - obwohl ich tatsächlich auf Debian Stretch 64-Bit bin. Aber ich habe Ihre Vorschläge an meine Plattform angepasst.
Einpoklum