强制Eclipse CDT解析#included文件以突出显示

时间:2012-02-05 21:32:43

标签: c eclipse eclipse-cdt

在解析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目录从已安装的项目切换到项目内部/包含目录。现在当我构建另一个项目时,它似乎解析了那些头文件中的宏。这不是很漂亮,但它对我有用。

1 个答案:

答案 0 :(得分:1)

确认您已签入所有相关选项:

  

首选项&GT; C / C ++ - &gt;索引器 - &gt;索引未使用的标题(...)