当尝试使用CDT编辑OpenFOAM(一种流行的计算流体动力学软件包)中的文件时,会出现问题。我正在使用Eclipse Kepler SR2 Build id:20140224-0627和CDT 8.3.0.201402142303以下是该问题的简化版本。
给出以下hello.cpp
#include <iostream>
#include <string>
int main(){
#include "hello.H"
std::cout << hello << std::endl;
}
以及以下hello.H
std::string hello("Hello world!");
索引无法解决hello.cpp中的问候。但是,如果我将hello.H更改为hello.inc,它确实有效。这对于OpenFOAM来说不是一个可行的解决方案。如何使索引和自动完成功能与给定的结构一起工作?
注意:我也尝试过Eclipse Luna,同样的事情发生了。
编辑:我认为这可能是一个错误。经过更多的实验,发生了以下情况。当我将hello.H命名为hello.inc时,hello.cpp中的hello被识别出来。但是,当我重建索引时,它不是。然后我重新保存了hello.inc而没有进行功能修改,不料,它再次得到了认可。但是,如果我关闭自动索引,则在重建索引后不再解析它。
编辑2:在对问题进行进一步研究后,我发现以下重复,没有随机行为: https://bugs.eclipse.org/bugs/show_bug.cgi?id=418085 我的耻辱: #include inside function body doesn't work (CDT/Eclipse C++) 因此,这个问题可以作为副本关闭。对于那些感兴趣的人,CDT索引器实际上并不是为此而设计的,因为这是一种糟糕的编码风格。给我的主要信息是我应该使用OpenFoam的其他IDE。