我一直在寻找这个问题的解决方案已经有一段时间了,找不到真正有用的东西。我已经尝试了在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>
得到了同样的错误,大概是我自己没有写过的任何其他错误。
我已经尝试过了:
#include <string>
和#include <string.h>
,两者均无效。但是,我已经能够扩展我的包含文件夹,以找到我期望它的文件。下面是我所看到的图片,如果这有助于更多:
编辑:好的,我明白了,#include <string.h>
不是我真正想要的,但正如我上面所说,#include <string>
不会产生新的结果。
编辑:我显然已经解决了这个问题。我怎么不知道,但看到我的答案
答案 0 :(得分:0)
我不确定为什么这样做或我可以做什么,但我只是运行项目看看会发生什么。似乎已经解决了错误,因为一旦我运行它们就消失了。也许错误消息有点儿错误,并且在包含最初无法解决时遗留下来。
答案 1 :(得分:0)
Eclipse具有不同的构建配置(调试/发布)。索引器默认使用Debug配置(至少在我的情况下)。更改: 项目|属性| C / C ++一般|索引器|构建索引器的配置|发布| [申请] | [好]。 也许你必须开始编制索引: 项目| C / C ++索引|重建
N.B。:当然,必须为发布配置正确设置所有路径,如本主题的许多其他答案中所提出的。但如果没有这种改变,所有其他改变都是无用的。