it-swarm.com.de

Eclipse CDT: Ungelöste Aufnahme von stl-Header

Ich versuche, Eclipse zum Bearbeiten von Quellen zu verwenden, die unter C++ Builder kompiliert wurden, aber mit dem Unresolved inclusion-Problem verbunden sind.

Zum Beispiel Code wie:

#include <vector>

Gibt Unresolved inclusion: <vector>-Fehler in der Eclipse-IDE aus. C++ Builder hat tatsächlich keine vector-Datei, sondern vector.h, die vom Compiler verwendet wird.

Eclipse IDE gibt keinen Fehler aus, wenn ich schreibe

#include <vector.h>

Wie richte ich Eclipse ein, vector.h zu verwenden, wenn #include <vector> angezeigt wird?

15
rmflow

Dies ermöglichte es mir, den Eclipse-Fehler "Ungelöste Einbeziehung" zu vermeiden.

In meinem Fall musste ich die Position des C++ - Vektor-Headers auf meinem Computer (der ein Mac ist) finden:

find /usr/local -name vector -print

Ich habe den korrekten Include-Speicherort im Ordner "/usr/include/c++/4.2.1" gefunden. Dann habe ich meine Projekt-Eclipse-Einstellungen so eingestellt:

Project->Properties->C/C++ General->Paths and Symbols->GNU C++->(Add)->"/usr/include/c++/4.2.1"

Ich verwende keinen C++ Builder, aber meine Lösung könnte einen Teil Ihrer Probleme beheben.

26

Sie können auch "CDT GCC Built-in Compiler Settings" verwenden. Gehen Sie zu den Projekteigenschaften> C/C++ - Allgemein> Präprozessor-Include-Pfad> Registerkarte "Provider" . Aktivieren Sie "CDT GCC Built-in Compiler Settings", falls dies nicht der Fall ist.

Keine der anderen Lösungen (play with include path, etc) funktionierte für den Typ 'string', aber diese wurde behoben.

5
Virtual

memory und memory.h beziehen sich nicht auf dieselbe Quelle.

Eine ist für c, die andere für C++

Haben Sie die richtige Quelle in Ihren Projekteinstellungen?

2
djfoxmccloud

Unter Windows und Eclipse CDT Oxygen funktionierte keine der hier beschriebenen Lösungen für mich (einschließlich der "Provider" - "CDT GCC Built-in Compiler-Einstellungen").

  • Installieren Sie Cygwin mit den folgenden Paketen (möglicherweise sind dafür nicht alle unbedingt erforderlich):
    • libgcc1
    • cygwin32-gcc-core, cygwin32-gcc-g ++
    • gcc-g ++
    • mingw64-x86_64-gcc-core, mingw64-x86_64-gcc-g ++
  • In den Projekteigenschaften:
    • Gehen Sie zu "C/C++ Build" - "Tool Chain Editor" und wählen Sie "Cygwin GCC" als "Current toolchain" aus:  Project Properties - Tool Chain Editor
    • Gehen Sie zu "C/C++ - Allgemein" - "Preprozessor-Einschlusspfade, Macors usw.". Wählen Sie auf der Registerkarte "Anbieter" Folgendes aus:
      • "CDT-Benutzer, die Einträge festlegen" (Ich benötige sie für andere Einschlüsse, beispielsweise für die Google-Test-Einsätze, auf die ich manuell verwiesen habe);
      • "Eingebauter CDT GCC-Compiler-Einstellungen Cygwin".  Project Properties -Providers
1