这个问题涉及在 Eclipse 4.2.2 (Juno) 中使用 CDT 8.1.2 管理的 C++ 项目。以下代码片段将编译,但在 Eclipse 中将显示为有错误。
我有一个名为 foo.h 的文件,内容如下:
int a = 42;
该文件包含在另一个文件 foo.cpp 中:
#include <cstdio>
int main() {
#include "foo.h"
printf("%d", a);
return 0;
}
如何解决“无法解析符号'a'”?据我了解,main() 函数中的#include 语句应该只触发预处理器中的复制粘贴操作。CDT 似乎已正确索引文件,因为我可以按住 CTRL 键单击文件名“foo.h”,然后在 IDE 中打开该文件。有趣的是,如果我将语句移到#include "foo.h"
语句下方#include <cstdio>
,它会按预期工作。CDT 中是否有任何选项可以在解析符号之前执行预处理?
旁注:我知道这种代码设计不受欢迎,但是我需要导入其他人编写的代码,并且需要正确设置内容辅助才能提高工作效率。