【发布时间】:2015-03-02 21:32:25
【问题描述】:
我一直在寻找解决这个问题的方法,但找不到真正有效的方法。我已经尝试了在 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 <sstream>,我得到了同样的错误,大概还有我自己没有写的任何其他内容。
我已经试过了:
- 确保我有正确的工具链和包含路径,以及切换到另一个工具链,应用更改,然后重新应用旧工具链。
- 多次重启 eclipse 和我的电脑。
-
#include <string>和#include <string.h>,两者都不起作用。不过,我已经能够展开我的包含文件夹以找到我期望的文件。
下面是我所看到的图片,如果有帮助的话:
编辑:好的,我明白了,#include <string.h> 并不是我真正想要的,但正如我上面所说,#include <string> 不会产生新的结果。
编辑:我显然已经解决了这个问题。我怎么不知道,但看我的回答
【问题讨论】:
-
包含路径中有哪些文件夹?
-
首先,正确的包含是
<string>,而不是<string.h>,所以请擦洗<string.h>这个想法。 -
可能,Eclipse 和/或插件有错误? Eclipse 不是编译器。
-
@AndreyDerevyanko 文件夹显示在图片中,除非您在谈论其他内容。从我在尝试解决此问题时阅读和看到的其他内容来看,这些似乎是正确的包含文件夹