2009-09-20 38 views
5

Cygwin GCC 3でEclipse CDTをコンパイラとして使用しています。私のプロジェクトはカスタムMakefileを使用しています。事実に加えて、私は取得していますことを/cygdrive/c <-> c:\Eclipse CDT with Cygwin GCC:シンボルとパスの自動検出

こと」未解決:

問題は、コードをデバッグするとき、それは私がのためにカスタムパスマッピングを追加していても、ソースファイルを見つけることができなかったということですインクルード "は、プログラムがコンパイルして正常に動作しても、すべての標準ヘッダーファイルに適用されます。

私は、次のようなエラーが表示さ「自動検出」オプションに問題をトレースさ:私は、ワークスペースディレクトリは任意のスペースを含まないパス上にあることを確認しました

screenshot1

注意。私も手動でインクルードパスに追加しようとしました

$ 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 

screenshot2

奇妙なことは、私は、シェルでその問題のコマンドを実行したとき、それは次のような出力とうまく動作することです

これを修正して、インクルードパスと定義済みのシンボルの両方を検出する方法はありますか?自動検出を無効にして、.cprojectファイルの必要なパスをハードコードするようにしてください。何か助けていただければ幸いです(Cygwinの代わりにMinGWを使用することをお勧めしません)。

+0

におけるそれらのパスがどのように実行してEclipseでデバッグんハードコーディングする必要がありますか?自動検出を無効にした後 –

答えて

6

cygwinを混在させることについては、あなたの意見がよく寄せられます。& cygwin問題の要点は、EclipseがWindows環境だけを理解することです。& cygwin、それほど多くはありません。

eclipseのウィンドウスタイルでパスを定義します。また、/ usrはC:\ cygwinの下にあります。完全なパスを与える必要があります。そうでなければ、eclipseはc:\ usrの下でそれを見つけようとし、空になる。

また、Windows環境に追加または置き換えられるパス定義はありますか?おそらく、あなたの環境に置き換えるのではなく、もっと幸せになるでしょう。

は、自動検出を試みたことはありません - あなたは、このようなパスを追加するとき.cproject

+2

ありがとうございました。自動検出をオフにし、手動でパスを追加することで警告を修正することができました* 'Windowsスタイル' *。 NetBeansのようにCygwinを使って作業していないのは残念です。 – Amro