我将Eclipse Juno用于与http://sourceforge.net/projects/gnuarmeclipse中的 GNU ARM C/C++开发支持插件一起安装的C/C++开发人员.
在我的项目,我使用类型,如uint_32t,int16_t和uint8_t比通常来自stdint.h.虽然我强迫Eclipse通过直接指向目录所在的include目录来查看编译器的标准头文件,但是提到的类型没有得到解决.这给了我很多关于未解析符号的红色标记,并对使用这些类型声明的函数的代码完成做了一些问题.
同样的问题是像GNUC这样的标准宏定义- 通常CDT会看到这些用于GNU C或GNU C++,但工具链设置为ARM Windows GCC却没有.奇怪.
我该怎么做才能解决这个问题并返回Eclipse提供的主要生产力?
我想我找到了解决问题的办法.问题是CDT GCC Builtin编译器设置提供程序,它试图运行gcc而不是arm-elf-gcc.我在字段Command to get compiler specs:¹中添加了前缀,以通过其正确的名称调用编译器.
而且,所有未解决的符号都消失了.
不幸的是,我通过更改工具链来破坏我的项目(如果你安装了GNU ARM Eclipse插件,就不要这样做了!)但这是另一个故事.
¹ - 它位于:Project Properties > C/C++ General > Preprocessor Include Paths, Macros etc.,标签Providers; Share settings entries between projects (global provider)必须禁用才能编辑该字段.