我正在使用Eclipse-CDT爲Linux開發和編譯項目。因爲可以使用Linux或Windows的主機。Eclipse-CDT:在Windows下針對Linux進行交叉編譯時的自動路徑發現
該項目創建爲具有特殊構建命令的Makefile項目,因此我將構建命令從make
更改爲我們的特殊構建命令,並認真執行了「構建」和「清理」命令行。 build命令使用不在$PATH
中的目錄中的gcc,因爲整個編譯器套件位於版本控制系統中。 (正確的$PATH
由build命令設置。)
這在Linux下正常工作:Eclipse自動學習符號和包含文件。 但是,在Windows下,符號被識別,但包含路徑不符合。
當我查看workspace/.metadata/.plugins/org.eclipse.cdt.make.core
目錄中生成的MyProject.sc文件時,我看到包含文件已被識別,但是前綴爲C:\cygwin
。
GCC命令行使用不帶驅動器盤符的絕對路徑。 (整個源代碼樹位於特殊驅動器上(例如W:
),CWD位於此驅動器上)。 例如用-I /net_libs/lib1/inc
調用gcc
/g++
,Eclipse識別C:\cygwin\net_libs\lib1\inc
。
順便說一句:標準包含路徑被正確識別(例如W:/toolchain/win32/i686-pc-linux-gnu/include/c++/4.2.1
)。
Build-Directory被設置爲與Sources和Includes位於同一驅動器上的Makefile的目錄。
我嘗試了各種「工具鏈」設置(Cygwin,MinGw,Linux gcc),結果每次都是一樣的。 (更改設置後,我甚至停止了Eclipse,刪除了sc文件並再次啓動Eclipse)。
我不知道爲什麼Eclipse知道我的Cygwin安裝在C:\ Cygwin中 - 安裝不被編譯器或相關工具使用。
當我手動更改.sc文件並更正路徑並重新啓動Eclipse時,一切正常。
你有什麼提示可能是什麼問題?
此選項僅用於獲取標準包含路徑 - 它被設置爲我的工具鏈編譯器,並且發現工作正常,這些路徑被正確識別。 我認爲我的問題與(Cygwin)路徑映射有關。我在沒有安裝Cygwin的Windows PC上再次嘗試,並且Eclipse沒有映射/到C:\ Cygwin - 而不是映射它 - 因此也不能識別包含路徑。 – IanH 2010-08-29 10:31:11