C++ Eclipse CDT不解析在#include文件中初始化的变量

C++ Eclipse CDT不解析在#include文件中初始化的变量,c++,eclipse,include,eclipse-cdt,C++,Eclipse,Include,Eclipse Cdt,在OpenFOAM(一种流行的计算流体动力学软件包)中,当试图使用CDT编辑文件时,就会出现问题。我使用的是EclipseKeplerSR2构建id:20140224-0627和CDT8.3.0.20140214303。以下是问题的简化版本 给定以下hello.cpp #include <iostream> #include <string> int main(){ #include "hello.H" std::cout <

在OpenFOAM(一种流行的计算流体动力学软件包)中,当试图使用CDT编辑文件时,就会出现问题。我使用的是EclipseKeplerSR2构建id:20140224-0627和CDT8.3.0.20140214303。以下是问题的简化版本

给定以下hello.cpp

#include <iostream>
#include <string>
    int main(){
        #include "hello.H"
        std::cout << hello << std::endl;
    }
索引无法在hello.cpp中解析hello。但是,如果我将hello.H更改为hello.inc,它确实可以工作。这对于OpenFOAM来说不是一个可行的解决方案。如何使索引和自动完成在给定结构下工作

注意:我也尝试过EclipseLuna,同样的情况也发生了

编辑:我认为这可能是一个错误。经过更多的实验,发生了以下情况。当我将hello.H命名为hello.inc时,hello.cpp中的hello被识别。然而,当我重建索引时,它不是。然后,我重新保存了hello.inc,没有进行任何功能更改,结果它再次被识别。但是,如果我关闭了自动索引,则在重建索引后将无法解决该问题

编辑2:在对问题进行进一步研究后,我发现以下重复项,没有随机行为: 令我羞愧的是: 因此,这个问题可以作为一个重复问题来解决。对于那些感兴趣的人来说,CDT indexer实际上并不是设计来实现这一点的,因为这是一种糟糕的编码风格。给我的主要信息是,我应该在OpenFoam中使用其他IDE

std::string hello("Hello world!");