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