【问题标题】:Eclipse CDT, how to make it NOT search for system headers?Eclipse CDT,如何让它不搜索系统头文件?
【发布时间】:2016-05-18 15:00:34
【问题描述】:

我正在将在 linux 上编译的 C 项目移植到在 Ubuntu 16.04 上使用 Eclipse Luna 的 arm 平台

当我在 Makefile 中从 CC=gcc 切换到 CC=arm-none-eabi 时,我得到了很多丢失的标头,这没关系,这就是移植工作的内容。

困扰我的是,当我按住 CTRL 键单击一个符号时,Eclipse 并没有打开 arm 工具链的相应文件。例如,如果我按住 CTRL 键单击 <time.h>,它不会打开:

/media/BUILDS/arm_gcc493/arm-none-eabi/include/time.h

但它总是恢复到它的 linux 系统对应物,在这种情况下

/usr/include/i386-linux-gnu/time.h

因为那是 gcc 会寻找的地方,但我正在使用 arm-none-eabi-gcc 进行编译!

我不希望 Eclipse 这样做,因为调试变得非常混乱。如果我实际上尝试编译的头文件/源代码有问题,我希望 Eclipse 打开该文件而不是默认系统文件。我摆弄了 Project Properties 和 Eclipse Preferences 但没有运气。

更糟糕的是,每当包含 <sys/socket.h> 时,我都会收到错误,因为 arm 工具链没有 socket.h,但如果我按住 CTRL 键单击它,Eclipse 会将我带到 /usr/include/i386-linux-gnu/sys/socket.h

我不希望这样,如果编译所需的标头不存在,它就是不存在。我不想让 Eclipse 向我展示其他东西,我该怎么做?

项目是在 C/C++ 下导入工作区“Existing Code as Makefile Project”中创建的

非常感谢

编辑:

我做了正确的事情并从头开始为 Cross ARM GCC 工具链创建一个项目(使用正确的插件)。我的错误是创建了一个“Linux GCC”项目并假装 Eclipse 通过启动不同的“make”命令来理解我想要实现的目标。但是,如果您无法从头开始重新启动,则可接受的解决方案会指导您如何手动修复这种情况。

【问题讨论】:

    标签: include eclipse-cdt eclipse-luna


    【解决方案1】:

    要解决这种情况,您需要更新预处理器包含路径、宏等设置以使用您的自定义前缀 GCC。

    进行更改:

    1. 打开项目属性(右键单击项目并选择属性
    2. C/C++ General -> 预处理器包括路径、宏等,选择Providers选项卡
    3. 选择CDT GCC 内置编译器设置
    4. 取消选中使用项目之间共享的全局提供程序
    5. ${COMMAND} 替换为arm-none-eabi-gccarm-none-eabi-g++

    或者,您也可以在工作区级别编辑相同的设置,以影响工作区中的所有项目。转到窗口 -> 首选项 -> C/C++ -> 构建 -> 设置 em> -> 发现 选项卡。

    这里有一些可能会有所帮助的屏幕截图。

    之前:

    项目属性:

    之后:

    【讨论】:

    • 谢谢,我认为您的解决方案有效。但是,我做了正确的事情,并从头开始为 Cross ARM GCC 工具链创建一个项目(使用正确的插件)。我的错误是创建了一个“Linux GCC”项目并假装 Eclipse 通过启动不同的“make”命令来理解我想要实现的目标
    • 很高兴您找到了解决方案。如果您将自己的答案写成解决方案并接受答案,那就太好了,因为最佳答案可能就是您实际所做的!也就是说,Cross ARM GCC Toolchain 或多或少会自动完成我手动完成的工作。它也可能做一些其他事情,但其中大部分都与使用托管项目有关(Eclipse CDT 为您创建 Makefile)。
    • 完全正确 ;) 对于那些无法像我一样从头开始重新启动并且必须手动清理情况的人来说,您的解决方案会派上用场
    猜你喜欢
    • 2019-07-16
    • 2016-10-22
    • 2012-03-28
    • 2018-10-14
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多