我在eclipse中为c ++提供了以下代码,它强调string
和cout
,并说无法解析。
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s;
s = "hello world";
cout << s;
return 0;
}
任何人都知道为什么?
编辑:截图
编辑:我找到了一个感谢所有人的解决方案(见答案)。
答案 0 :(得分:71)
我也遇到过这个问题。
我发现这是因为Eclipse无法找到所有包含标题。
这个简单快速的解决方案可能会解决您的问题(例如,当Eclipse项目移动到磁盘上的其他位置,然后再次导入Eclipse时),如果没有,请跳转到下一部分(详细修复)。
在继续检查您的工具链是否正确安装之前。
这个答案已经过时了。如果上述任何内容都没有帮助
,请继续如果前面的步骤没有帮助,我们需要手动设置包含目录(不建议使用)
答案 1 :(得分:6)
问题是我需要安装minGW and MSY S并添加到PATH。
问题现已解决。
答案 2 :(得分:4)
您需要确保在Eclipse中正确设置环境,以便了解包含的路径。否则,它会将它们强调为未找到。
答案 3 :(得分:4)
我刚刚回答了Vanuan(Eclipse CDT: Unresolved inclusion of stl header)给出的相关问题,这是我的回答:
您也可以尝试使用“CDT GCC内置编译器设置”。转到项目属性&gt; C / C ++一般&gt;预处理器包含路径&gt;提供商标签 然后检查“CDT GCC内置编译器设置”,如果不是。
其他解决方案(使用包含路径等)都没有为我的类型'字符串'工作,但这个解决了它。
答案 4 :(得分:2)
我遇到了同样的问题。添加包含路径适用于除std :: string之外的所有内容。
我在mingw-Toolchain中注意到很多系统头文件* .tcc
我在Preferences&gt;中添加了filetype * .tcc作为“C ++ Header File”。 C / C ++ /文件类型。 现在可以从内部索引和代码分析器中解析std :: string。 也许这在默认情况下会添加到Eclipse CDT中。
我希望这对某人有帮助......
PS:我正在使用Eclipse Mars,mingw gcc 4.8.1,Own Makefile,没有Eclipse Makefilebuilder。
答案 5 :(得分:1)
我遇到了同样的问题。将Properties / C / C ++ Build / ToolChainEditor中的CurrentBuilder更改为另一个值并应用它。然后再次将其更改为原始值。有用。
答案 6 :(得分:0)
您好,这是一个简单的解决方案,
只需转到文件->转换为C / C ++ Autotools项目 适当选择项目文件。
包含的内容将添加到您的项目文件中
答案 7 :(得分:0)
在Linux上将${COMMAND}
设置为g++
在“预处理程序包含路径,宏等”下和“ CDT GCC内置编译器设置”,如果您从现有Makefile项目中导入源,则存在一个未定义的${COMMAND}
变量。
Eclipse尝试运行该命令以解析其stdout以查找标头,但是默认情况下未设置${COMMAND}
,因此它无法这样做。
我已经在How to solve "Unresolved inclusion: <iostream>" in a C++ file in Eclipse CDT?
上对此进行了更详细的解释。