我正在使用Eclipse Luna在Ubuntu 16.04上将在Linux上编译的C项目移植到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就会把我带到/usr/include/i386-linux-gnu/sys/socket.h
我不想要,如果编译所需的标题不存在,那就不存在了。我不希望Eclipse向我展示其他内容,我该怎么做?
项目已创建导入C / C ++
下的工作空间“现有代码为Makefile项目”非常感谢
编辑:
我做了正确的事情并从头开始为Cross ARM GCC工具链创建一个项目(使用适当的插件)。我的错误是创建了一个“Linux GCC”项目并假装Eclipse只是通过启动一个不同的“make”命令来理解我想要实现的目标。但是,如果您无法从头开始重新启动,则接受的解决方案会指导您如何手动修复该情况。
答案 0 :(得分:3)
要解决此问题,您需要更新预处理器包含路径,宏等设置以使用自定义前缀GCC。
进行更改: