我使用ARM Eclispe for DS-5环境来维护和构建命令行(基于makefile)项目。使用Eclipse的Indexer来分析代码以进行智能浏览和编辑,看起来它无法识别底层的ARM C编译器5预定义的宏。例如,如果我的代码中有:
#warning "XXXXXXXX Im here 1 XXXXXXX"
#ifdef __arm__
#warning "XXXXXXXX Im here 2 XXXXXXX"
#endif
然后在编译模块时,我会看到第一个和第二个警告(编译器当然知道自己的__arm__
宏)。但是,在编辑器中,#ifdef
块中的代码显示为灰色。因此,我在Problems
视图中有数百个错误指示。
如何使环境了解编译器的内置设置?
*使用ARM DS-5版本5.20和armcc版本5.05
您可以设置Eclipse C/C++项目属性:预处理器包含路径、宏。添加宏或预处理器文件有助于理解编译器对eclipse的预定义/宏。
请注意,还可以在单个资源(如文件或文件夹)上设置条目。打开文件或文件夹属性以检查特定于资源的条目。文件夹或项目上的条目将应用于其下的所有子文件夹和C/C++文件,除非在较低级别上被覆盖。
有关详细信息,您可以查看此链接为C/C++索引器设置包含路径和宏