如何在Eclipse CDT的C ++文件中解决“未解决的包含:<iostream>”?


Answers:


96

转到项目>属性> C / C ++常规>预处理程序包括...>提供程序,然后选择“ CDT GCC内置编译器设置”。


我从#include <string>中得到了一个未解决的包含物。但这对我有用。谢谢!
Natanael 2014年

1
这对我有用。在删除项目,重新导入,清理和重新构建项目之前,我仍然有类似于Natanael的举动。
Jacko 2014年

11
不,不能解决问题。是否有任何实际解决问题的解决方案?
Joehot200年

1
加上还取消了内置于编译器设置中的Cross-GCC,这对我来说是成功的。
user1205577

1
对我来说,检查CDT GCC内置编译器设置后,我还必须在“语言设置提供程序选项”中检查以下“使用项目间共享的全局提供程序”,然后才能识别我的iostream。
CodeMonkey '18年

18

我使用Eclipse进行交叉编译,并且必须为某些标准C ++库添加显式目录。右键单击您的项目,然后选择“属性”。您将获得图中显示的对话框。跟随图像并使用+图标将路径明确添加到C ++库。在此处输入图片说明


13

确保您的文件具有.cpp扩展名而不是.c,我只是遇到了这个问题


2.5小时的搜索,终于找到了解决方案!
dberm22

6

我尝试了前面提到的所有答案,但就我而言,我必须手动指定iostream文件的包含路径。当我使用MinGW时,路径为:

C:\ MinGW \ lib \ gcc \ mingw32 \ 4.8.1 \ include \ c ++

您可以在Eclipse中的以下位置添加路径:项目> C / C ++常规>路径和符号>包含>添加。希望对您有所帮助


4

安装gcc。

如果您使用的是Linux,请使用软件包管理器。

如果您使用的是Windows,请使用MinGW


7
安装gcc并不总是足以解决此问题。
ehudt

99%的时间解决问题。除非系统出了点大问题,否则为什么iostream不会加载?我认为我们可以针对每个答案说出这种响应,例如,如果它是语法错误并且有人对其进行了修复,则响应可能是“可能是编译器存在错误”。但是,发生这种情况的机会非常低。
Dhaivat Pandya

2
@DhaivatPandya:我认为他的意思是安装gcc只是几个必需步骤之一。(除非蚀能神奇地检测到突然安装了gcc?可能不知道)
Mooing Duck 2014年

2
请注意,我在一个项目上使用eclipse一个月,突然我的所有#include语句都收到此警告(显然已安装gcc),因此安装gcc并不是真正的解决方案。
GreySage 2015年

3

就我而言,它不是CDT GCC内置编译器设置。只有在包含CDT GCC内置编译器设置Cygwin之后,解析器才识别出我的#include <iostream>



1

我将Cygwin与Eclipse结合使用,这对我有用:

转到项目>属性> C / C ++常规>预处理程序包括...>提供程序,然后选择“ CDT GCC内置编译器设置Cygwin [Shared]”。


1

对于使用全新安装的Ubuntu或其他Linux发行版的用户,在尝试编译Eclipse CDT项目之前,请确保至少具有“ build-essential”软件包。

在终端上,键入:

sudo apt-get install build-essential

足以编译和运行您的应用程序。

当然,您也可以使用以下命令执行完整的g ++安装:

sudo apt-get install g++

1

我在Windows中使用cygwin运行eclipse。

项目>属性> C / C ++常规>预处理程序包括...>提供程序,然后在提供程序列表中选择“ CDT GCC内置编译器设置Cygwin”对我来说解决了问题。



0

我在Eclipse 2019-12中遇到了这个问题,以前已经解决了包含问题,但后来没有解决。这是使用Meson构建C / C ++项目进行的。我不确定到底发生了什么,但是关闭项目并重新打开它为我解决了这个问题。


0

也设置${COMMAND}g++Linux

下:

  • 项目
  • 物产
  • C / C ++常规
  • 预处理器包含路径,宏等
  • 提供者
  • CDT GCC内置编译器设置
  • 获取编译器规格的命令

更换:

${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"

与:

g++ -std=c++11 -E -P -v -dD "${INPUTS}"

如果您不这样做,则Eclipse标准输出将显示:

Unable to find full path for "-E"

${HOME}/eclipse-workspace/.metadata/.log显示以下日志:

!ENTRY org.eclipse.cdt.core 4 0 2020-04-23 20:17:07.288
!MESSAGE Error: Cannot run program "-E": Unknown reason

因为${COMMAND} ${FLAGS}为空,所以Eclipse尝试执行-E下一个。

我想知道我们是否可以在设置上正确定义COMMANDFLAGS变量,但是我试图将它们添加为构建变量,但没有用。

问题的C版本:Eclipse CDT对于C标准库标头的“未解决的包含”错误

已在Eclipse 2020-03(4.15.0),Ubuntu 19.10和带有现有资源的最小Makefile项目中进行了测试

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.