【问题标题】:Eclipse-CDT: Automatic Path Discovery when cross-compiling for Linux under WindowsEclipse-CDT:在 Windows 下为 Linux 交叉编译时的自动路径发现
【发布时间】: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


    【解决方案1】:

    看看 Project->Propterties->C/C++ Build->Discovery Options。
    有一个编译器调用命令 - 通常设置为gcc,意思是“gcc in PATH”。尝试从您的构建系统将其设置为您的 gcc。

    【讨论】:

    • 此选项仅用于获取标准包含路径 - 它设置为我的工具链编译器并且发现工作正常,这些路径被正确识别。我认为我的问题与(Cygwin)路径映射有关。我在没有安装 Cygwin 的 Windows-PC 上再次尝试,并且 Eclipse 没有将 / 映射到 C:\Cygwin - 而不是这个,它没有全部映射 - 因此也无法识别包含路径。
    猜你喜欢
    • 2013-08-27
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2011-02-10
    • 2019-07-30
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多