示例项目上的代码如下所示:
错误包括:
Unresolved inclusion: <iostream>
Symbol 'std' could not be resolved
Symbol 'cout' could not be resolved
但是,运行项目成功输出:
!!!Hello World!!!
我猜它的自动完成部分没有查看正确的文件,知道如何解决这个问题吗?
示例项目上的代码如下所示:
错误包括:
Unresolved inclusion: <iostream>
Symbol 'std' could not be resolved
Symbol 'cout' could not be resolved
但是,运行项目成功输出:
!!!Hello World!!!
我猜它的自动完成部分没有查看正确的文件,知道如何解决这个问题吗?
您可能只需要重建索引,否则您只需要设置 IDE“发现”选项。
如果不知道您拥有什么 Eclipse、什么工具链以及所有其他未知数,我无法告诉您如何做到这一点。显然,您的编译器确实知道这些东西在哪里,这很重要。
无论如何,如果您查看项目属性,在“C/C++ General”下,您应该在“Preprocessor Includes”和/或“Paths and Symbols”中找到相关选项。
特别是,“Preprocessor Includes”->“Entries”->“C”应该列出它认为正确的位置。如果不是,请尝试摆弄“提供者”并找到一些确实提供正确位置的设置。您可能必须为某些提供程序运行构建以检测位置。
languitar 的说明解决了我的问题:
带有 CDT 的 Eclipse Juno 不添加内置包含目录
他说,
请
Open the Eclipse Preferences dialog (Windows | Preferences). Open C++ | Build | Settings. Open the Discovery tab. Select the built-in compiler settings entry. Press the Clear Entries button.
之后 eclipse 应该再次从编译器请求默认值。
在 Arch Linux 上,每次 GCC 版本更改后我都必须这样做,因为在这种情况下,默认值的位置会随着版本编码在文件夹名称中而更改,而 eclipse 不会注意到这一点。