【发布时间】:2012-03-16 15:11:08
【问题描述】:
在解析 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
}
到目前为止,我已尝试更改项目的发现选项/配置文件,并在一般首选项中为索引器切换到“使用活动构建配置”。 该项目是一个相对较小(但充斥着宏)的 C/C++ 项目,使用外部构建器(autotools/make)。
补充说明:
我发现问题的一部分是我引用了来自不同项目的头文件,这些头文件使用 Makefiles 安装到单独的目录中。我将包含目录从已安装切换到项目内部 /include 目录。现在,当我构建另一个项目时,它似乎解析了这些头文件中的宏。这不是很漂亮,但对我来说有点用。
【问题讨论】:
标签: c eclipse eclipse-cdt