2009-09-20 21 views
5

Używam Eclipse CDT z Cygwin GCC 3 jako kompilatora. Mój projekt używa niestandardowego pliku Makefile.Eclipse CDT z Cygwin GCC: automatyczne wykrywanie symboli i ścieżek

Problemem jest to, że podczas debugowania kodu, nie może zlokalizować pliki źródłowe, mimo że I dodaje niestandardowe odwzorowania ścieżki dla: /cygdrive/c <-> c:\

To w połączeniu z faktem, że jestem coraz "nierozwiązany włączenie "dla wszystkich standardowych plików nagłówkowych, mimo że program kompiluje się i działa poprawnie.

Wywiodłem problem z opcją „automatyczne wykrywanie”, który pojawi się następujący błąd:

screenshot1

pamiętać, że upewnił się, że katalog roboczy znajduje się na ścieżce bez spacji. Najdziwniejsze jest to, że po uruchomieniu tego problematycznego polecenie w powłoce, to działa dobrze z następujące dane wyjściowe:

$ 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 

Próbowałem też ręcznie dodać do ścieżki obejmują:

screenshot2

Jak mogę to naprawić, aby odkrył ścieżki dostępu i zdefiniowane symbole? Czy powinienem spróbować wyłączyć automatyczne wykrywanie i zakodować wymagane ścieżki w pliku .cproject? Każda pomoc jest doceniana (pytam tylko, że nie sugerujesz używania MinGW zamiast Cygwin!).

+0

Jak uruchomić i debugowania w Eclipse podczas dodawania ścieżek tak? po wyłączeniu automatycznego wykrywania –

Odpowiedz

6

Pozdrawiam jest najczęstszym źródłem skarg dotyczących miksowania eclipse & cygwin. Sedno problemu polega na tym, że Eclipse rozumie tylko środowisko Windowsa, no cóż, nie za bardzo.

Określ swoje ścieżki w stylu okna zaćmień. Również/usr jest pod C: \ cygwin, musisz podać pełną ścieżkę. W przeciwnym razie eclipse spróbuje znaleźć to pod c: \ usr i pojawi się puste.

Czy definicje ścieżek dołączają się do środowiska systemu Windows lub zastępują go? Prawdopodobnie będziesz szczęśliwszy, dołączając do swojego środowiska, zamiast go zastępować.

Nigdy nie próbowałem wykrywanie - może być ciężko kodem tych ścieżek w .cproject

+2

Dzięki, udało mi się naprawić ostrzeżenia, wyłączając automatyczne wykrywanie i ręcznie dodając ścieżki * "Styl Windows" *. Szkoda, że ​​nie działa z Cygwinem po wyjęciu z pudełka, tak jak robi to NetBeans. – Amro

Powiązane problemy