Eclipse-CDT:在Windows下针对Linux进行交叉编译时的自动路径发现

时间:2010-08-10 11:50:53

标签: c++ windows eclipse cross-platform eclipse-cdt

我正在使用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时,一切正常。

你有什么提示可能是什么问题吗?

1 个答案:

答案 0 :(得分:1)

查看Project-> Propterties-> C / C ++ Build-> Discovery Options。
有一个编译器调用命令 - 通常设置为gcc,这意味着“路径中的gcc”。尝试从构建系统中将其设置为gcc。