2009-09-20 36 views
5

Tôi đang sử dụng CDT Eclipse với trình biên dịch Cygwin GCC 3. Dự án của tôi đang sử dụng Makefile tùy chỉnh.CDT Eclipse với Cygwin GCC: khám phá tự động các biểu tượng và đường dẫn

Vấn đề là khi gỡ lỗi mã, nó không thể xác định vị trí các tập tin nguồn, mặc dù tôi đã thêm một ánh xạ đường tùy chỉnh cho: /cygdrive/c <-> c:\

Đó ngoài thực tế là tôi đang nhận được "chưa được giải quyết bao gồm "cho tất cả các tệp tiêu đề chuẩn, mặc dù chương trình biên dịch và chạy tốt.

tôi bắt nguồn từ vấn đề với "phát hiện tự động" tùy chọn, trong đó cho thấy các lỗi sau:

screenshot1

Lưu ý rằng tôi đã chắc chắn rằng thư mục workspace là trên một con đường không có khoảng cách. Điều kỳ lạ là khi tôi chạy lệnh này có vấn đề trong vỏ, nó chỉ chạy tốt với kết quả như sau:

$ 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 

Tôi cũng cố gắng để tự thêm vào đường dẫn bao gồm:

screenshot2

Làm thế nào tôi có thể sửa lỗi này để nó phát hiện cả hai đường dẫn bao gồm và các biểu tượng được xác định? Tôi có nên thử tắt tính năng khám phá tự động và mã hóa đường dẫn được yêu cầu trong tệp .cproject không? Bất kỳ trợ giúp nào được đánh giá cao (tôi chỉ yêu cầu bạn không đề xuất sử dụng MinGW thay vì Cygwin!)

+0

Làm cách nào để chạy và gỡ lỗi trong nhật thực khi bạn thêm đường dẫn như thế này? sau khi tắt phát hiện tự động –

Trả lời

6

Bạn là nguồn khiếu nại thường xuyên nhất về việc trộn nhật thực & cygwin. Điểm mấu chốt của vấn đề là nhật thực chỉ hiểu môi trường cửa sổ & Cygwin, cũng không nhiều lắm.

Xác định đường dẫn của bạn theo kiểu cửa sổ nhật thực. Cũng là/usr là dưới C: \ cygwin, bạn phải cung cấp cho nó đường dẫn đầy đủ. Nếu không thì nhật thực sẽ cố gắng tìm nó dưới c: \ usr và trống rỗng.

Ngoài ra, các định nghĩa đường dẫn của bạn có bổ sung hoặc thay thế môi trường cửa sổ của bạn không? Có thể bạn sẽ thích thú hơn với môi trường của mình thay vì thay thế.

Không bao giờ thử tự động phát hiện - bạn có thể phải mã hóa cứng các đường dẫn đó trong .cproject

+2

Cảm ơn, tôi đã cố gắng khắc phục các cảnh báo bằng cách tắt tính năng khám phá tự động và thêm các đường dẫn * kiểu Windows 'theo cách thủ công *. Quá xấu nó không làm việc với Cygwin ra khỏi hộp như NetBeans nào. – Amro

Các vấn đề liên quan