在解析C源代码时,Eclipse似乎忽略了#includes相对于已定义的宏。这在突出显示时有用,有时甚至是自动完成。例如,假设以下两个头文件:
bar.h:
#define BAZ 1
foo.h中:
#include "bar.h" //<-- Jumping from here leads to the correct file
#ifdef BAZ
int baz() { //
return BAZ; // this section will be grayed out
} //
#else
int baz() {
return 42;
}
#endif
int foo() {
return baz(); // jumping from here will go to the second(42) function
}
到目前为止,我尝试更改项目的Discovery选项/配置文件,并在常规首选项中切换到索引器的“使用活动构建配置”。 该项目使用外部构建器(autotools / make)是一个相对较小(但充满了宏)的C / C ++项目。
附加说明:
我发现问题的一部分是我从使用Makefile安装到单独目录的其他项目引用头文件。我将include目录从已安装的项目切换到项目内部/包含目录。现在当我构建另一个项目时,它似乎解析了那些头文件中的宏。这不是很漂亮,但它对我有用。
答案 0 :(得分:1)
确认您已签入所有相关选项:
首选项&GT; C / C ++ - &gt;索引器 - &gt;索引未使用的标题(...)