我正在使用Eclipse-CDT开发和编译Linux项目。 作为主机,Linux或Windows都可以使用。
使用特殊的构build命令将项目创build为Makefile项目,所以我将build命令从make
为我们特殊的命令,并且认真地将“Build”和“Clean”命令行更改了。 build命令使用不在$PATH
的目录中的gcc,因为整个编译器套件位于版本控制系统中。 (正确的$PATH
由build命令设置。)
这在Linux下正常工作:Eclipse自动学习符号和包含文件。 但是,在Windows下,符号被识别,但包含path不是。
当我查看workspace/.metadata/.plugins/org.eclipse.cdt.make.core
目录中生成的MyProject.sc文件时,我看到包含文件被识别,但是前面加上了C:\cygwin
。
GCC命令行使用没有驱动器盘符的绝对path。 (整个源代码树位于一个特殊的驱动器(例如W:
:),CWD在这个驱动器上)。 例如,用-I /net_libs/lib1/inc
调用gcc
/ g++
,Eclipse识别C:\cygwin\net_libs\lib1\inc
。
顺便说一句:标准包含path被正确识别(例如W:/toolchain/win32/i686-pc-linux-gnu/include/c++/4.2.1
)。
Build-Directory被设置为与源和包含在同一驱动器上的Makefile的目录。
我尝试了各种“工具链”设置(Cygwin,MinGw,Linux gcc),结果每次都是一样的。 (更改设置后,我甚至停止了Eclipse,删除了sc文件并再次启动Eclipse)。
我不知道为什么Eclipse知道我的Cygwin安装在C:\ Cygwin中 – 安装不被编译器或相关工具使用。
当我手动更改.sc文件并更正path并重新启动Eclipse时,一切正常。
你有什么提示可能是什么问题?
看看Project-> Propterties-> C / C ++ Build-> Discovery Options。
有一个编译器调用命令 – 通常设置为gcc
,这意味着“路径中的gcc”。 尝试从你的构建系统设置这个到你的gcc。