【发布时间】:2010-08-10 11:50:52
【问题描述】:
我正在使用 Eclipse-CDT 为 Linux 开发和编译项目。可以使用 Linux 或 Windows 作为主机。
该项目是使用特殊构建命令创建为 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 在这个驱动器上)。
例如。 gcc/g++ 被-I /net_libs/lib1/inc 调用,Eclipse 识别出C:\cygwin\net_libs\lib1\inc。
顺便说一句:标准包含路径被正确识别(例如W:/toolchain/win32/i686-pc-linux-gnu/include/c++/4.2.1)。
Build-Directory 设置为 Makefile 的目录,该目录与 Sources 和 Includes 位于同一驱动器上。
我尝试了各种“工具链”设置(Cygwin、MinGw、Linux gcc),每次结果都一样。 (更改设置后,我什至停止了 Eclipse,删除了 sc 文件并重新启动了 Eclipse。
我不知道为什么 Eclipse 知道我在 C:\Cygwin 中安装的 Cygwin - 编译器或相关工具不使用该安装。
当我手动更改 .sc 文件并更正路径并重新启动 Eclipse 时,一切正常。
你有什么提示可能是什么问题吗?
【问题讨论】:
标签: c++ windows eclipse cross-platform eclipse-cdt