2

我一直在与 Eclipse CDT 中的索引器作斗争。目前,我有类似于以下的代码,是的,这很简单:

#include <Othernamespace/Bar>

class Foo : public Othernamespace::Bar
{
public:
    Foo(const Othernamespace::Zip& env);
};

Foo::Foo(const Othernamespace::Zip& env)
: Othernamespace::Bar(env)
{ }

<Othernamespace/Bar>解析头文件没有问题。Othernamespace::Bar作为父类解决没有问题。没有问题解决Othernamsespace::Zip

但是,在Foo构造函数中,链式调用Othernamespace::Bar被标记为错误。如果我右键单击包含并检查代码,我可以清楚地看到Bar构造函数需要一个const Zip& argument.

更重要的是:我有另一个项目使用具有相同包含的相同框架,并且 Othernamespace::Bar 的索引很好,没有任何问题。为什么,哦,为什么我不能让这个索引?

同样,我在这里基本上是重用代码,在以前的使用中没有问题。我可以从编辑器中打开包含的文件,并在调用父构造函数时验证我的参数是否正确(并且我将索引器设置为在编辑器中打开的文件的索引)。

我已经尝试重建索引。我试过“刷新所有文件”。我尝试将索引大小的最大限制从 64 提高到 128MB(不是我认为我接近 64MB)。这些都没有任何区别。

我还注意到对继承类成员的其他调用被标记为未找到,这意味着我在这个类上所做的任何工作都只是错误标志。同样,我已经验证了包含的文件(已解析)包含这些方法声明。依然没有。

我项目中的其他文件也来自索引。它们一分钟会没事,但下次我打开它们时,它们都被标记为错误。我将重建索引,它会好一段时间,只是以后会再次发生。

我觉得我花在与索引器作斗争上的时间比完成工作的时间还要多,而且这不仅仅是令人沮丧的。有没有解决这些索引问题的建议?

谢谢。

4

1 回答 1

1

我不是 Eclipse 方面的专家,它是 Indexer,但和你一样,我已经和它斗争了很长时间。根据您提供的信息,您的问题可能是索引器中的错误。如果 Project > Properties > c/c++ Build > Settings 中的所有包含确实正确(我有一个问题,我将包含放在 C 区域而不是 C++ 区域中),那么您可以尝试删除“.index”文件夹从“/.plugins/org.eclipse.core.resources/.projects/yourProjectName”目录,然后从“... /Eclipse_Workspace/.metadata/.plugins/org.eclipse.cdt.core”中删除项目的 PDOM 文件. 确保在整个过程中关闭 Eclipse。然后启动它。在此之后,您需要重做您的包含。这对我有用,所以希望它可以帮助你。祝你好运。

于 2012-07-25T21:20:27.180 回答