Frage

Ich verwende Eclipse CDT mit Cygwin GCC 3 als Compiler. Mein Projekt verwendet ein benutzerdefiniertes Makefile.

Das Problem ist, dass beim Debuggen des Codes die Quelldateien nicht gefunden werden konnten, obwohl ich eine benutzerdefinierte Pfadzuordnung für: /cygdrive/c <-> c:\

Das zusätzlich zu der Tatsache, dass ich bekomme "ungelöste Einbeziehung"Für alle Standard -Header -Dateien, obwohl das Programm gut kompiliert und ausgeführt wird.

Ich verfolgte das Problem auf das "Automatische Entdeckung"Option, die den folgenden Fehler anzeigt:

screenshot1

Beachten Sie, dass ich sichergestellt habe, dass sich das Arbeitsbereichsverzeichnis auf einem Pfad ohne Räume befindet. Das Seltsame ist, dass beim Ausführen dieses problematischen Befehls in der Shell es mit der folgenden Ausgabe gut ausgeführt wird:

$ gcc -E -P -v -dD C:/Users/Amro/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /managed/gcc-build/final-v3-bootstrap/gcc-3.4.4-999/configure --verbose --program-suffix=-3 --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-included-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
 /usr/lib/gcc/i686-pc-cygwin/3.4.4/cc1.exe -E -quiet -v -P -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api C:/Users/Amro/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c -mtune=pentiumpro -dD
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/include"
ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/i686-pc-cygwin/3.4.4/include
 /usr/include
 /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api
End of search list.
#define __STDC_HOSTED__ 1
#define __GNUC__ 3
       [.... truncated ....]
#define __unix__ 1
#define __unix 1

Ich habe auch versucht, den Pfad manuell hinzuzufügen:

screenshot2

Wie kann ich das so beheben, dass es sowohl die Einschlusspfade als auch die definierten Symbole entdeckt? Sollte ich versuchen, die automatische Entdeckung auszuschalten und die erforderlichen Pfade in der erforderlichen Pfade zu harten .CProject Datei? Jede Hilfe wird geschätzt (ich bitte nur, dass Sie Mingw anstelle von Cygwin nicht verwenden!)

War es hilfreich?

Lösung

Ihre ist eine häufige Quelle für Beschwerden bezüglich des Mischens von Eclipse & Cygwin. Der Kern des Problems ist, dass Eclipse nur die Windows -Umgebung und Cygwin versteht, na ja, nicht so sehr.

Definieren Sie Ihre Wege im Eclipse Windows -Stil. Auch ist /usr unter c: cygwin, du musst ihm den vollen Weg geben. Andernfalls wird Eclipse versuchen, es unter C: usr zu finden und leer zu kommen.

Bieten Ihre Pfaddefinitionen auch an oder ersetzen Sie Ihre Windows -Umgebung? Sie werden wahrscheinlich glücklicher sein, sich Ihrer Umgebung anzuschließen, anstatt zu ersetzen.

Nie ausprobiert Autodetekt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top