Eclipse CDT:无法解析类型std :: string

时间:2015-03-02 21:32:25

标签: c++ eclipse

我一直在寻找这个问题的解决方案已经有一段时间了,找不到真正有用的东西。我已经尝试了在stackoverflow(以及其他地方)的其他问题中找到的所有解决方案,但似乎都没有。

在开始之前,我正在运行Ubuntu 12.04,Eclipse 3.7.2,并且我安装了g ++ 4.6.3。

当我尝试使用任何std包含时,我收到一条错误消息,指出该类型无法解析。例如,这是我的一些代码:

#ifndef UTILITY_H_
#define UTILITY_H_

#include <string.h>

class Utility {
public:
    static std::string test() // <- Error at this line
    {
        return "";
    }
};


#endif /* UTILITY_H_ */

在指定的行,我收到一条错误消息Type 'std::string' could not be resolved。请注意,include语句已解决得很好,但该包含文件中的类型不是。我为#include <sstream>得到了同样的错误,大概是我自己没有写过的任何其他错误。

我已经尝试过了:

  • 确保我拥有合适的工具链并包含路径,以及切换到另一个工具链,应用更改,然后重新应用旧的工具链。
  • 多次重启eclipse和我的电脑。
  • #include <string>#include <string.h>,两者均无效。但是,我已经能够扩展我的包含文件夹,以找到我期望它的文件。

下面是我所看到的图片,如果这有助于更多:

enter image description here

编辑:好的,我明白了,#include <string.h>不是我真正想要的,但正如我上面所说,#include <string>不会产生新的结果。

编辑:我显然已经解决了这个问题。我怎么不知道,但看到我的答案

2 个答案:

答案 0 :(得分:0)

我不确定为什么这样做或我可以做什么,但我只是运行项目看看会发生什么。似乎已经解决了错误,因为一旦我运行它们就消失了。也许错误消息有点儿错误,并且在包含最初无法解决时遗留下来。

答案 1 :(得分:0)

Eclipse具有不同的构建配置(调试/发布)。索引器默认使用Debug配置(至少在我的情况下)。更改: 项目|属性| C / C ++一般|索引器|构建索引器的配置|发布| [申请] | [好]。 也许你必须开始编制索引: 项目| C / C ++索引|重建

N.B。:当然,必须为发布配置正确设置所有路径,如本主题的许多其他答案中所提出的。但如果没有这种改变,所有其他改变都是无用的。