【问题标题】:Force Eclipse CDT to parse #included files for highlighting强制 Eclipse CDT 解析 #included 文件以突出显示
【发布时间】: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


    【解决方案1】:

    验证您已签入所有相关选项:

    首选项-> C/C++ -> 索引器 -> 索引未使用的标头(...)

    【讨论】:

    • 帮助了我,当我 ctrl+单击名称时 Eclipse 现在可以正确打开标题,但仍然在类型名称下划线并带有注释“未解决”。如果我在源文件中添加缺少的包含,则不再加下划线。但是为什么它在索引中找到它并在没有它的情况下将其标记为未解决?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2012-09-05
    • 2012-09-09
    • 2012-06-12
    相关资源
    最近更新 更多