Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何解决;未解决的包含:<;iostream>&引用;在C++;EclipseCDT中的文件?_C++_Eclipse_Iostream - Fatal编程技术网

C++ 如何解决;未解决的包含:<;iostream>&引用;在C++;EclipseCDT中的文件?

C++ 如何解决;未解决的包含:<;iostream>&引用;在C++;EclipseCDT中的文件?,c++,eclipse,iostream,C++,Eclipse,Iostream,我下载(cdt-master-8.0.2.zip) 当我写作时: #include <iostream> #包括 它标志着: Unresolved inclusion: <iostream> 未解决的包含: 如何修复它?安装gcc 如果您在linux上,请使用包管理器 如果你在Windows上,使用.< /p> ,我使用Eclipse进行交叉编译,我必须为一些标准C++库添加显式目录。在项目上单击鼠标右键,然后选择“属性”。您将获得如图所示的对话框。按照图像并使用

我下载(cdt-master-8.0.2.zip)

当我写作时:

#include <iostream>
#包括
它标志着:

Unresolved inclusion: <iostream>
未解决的包含:
如何修复它?

安装gcc

如果您在linux上,请使用包管理器


如果你在Windows上,使用.< /p> ,我使用Eclipse进行交叉编译,我必须为一些标准C++库添加显式目录。在项目上单击鼠标右键,然后选择“属性”。您将获得如图所示的对话框。按照图像并使用+图标显式地将路径添加到C++库。 确保您的文件扩展名为.cpp而不是.c,我刚刚遇到了这个问题

听起来您以前从未使用过这个IDE。阅读Eclipse的“开始前”页面并按照T的说明进行操作。这将确保Eclipse(它只是一个IDE)实际上链接到编译器


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

在我的例子中,它不是CDT GCC内置编译器设置。只有在我将CDT GCC内置编译器设置Cygwin包括在内之后,解析器才识别出我的
#include
我将Eclipse与Cygwin一起使用,这对我来说很有效:


转到项目>属性>C/C++常规>预处理器包括…>提供者
并选择“CDT GCC内置编译器设置Cygwin[Shared]”

对于那些使用新安装的Ubuntu或其他Linux发行版的用户, 在尝试编译EclipseCDT项目之前,请确保您至少拥有“BuildEssential”包

在终端,键入:

sudo apt-get install build-essential
它应该足以编译和运行您的应用程序

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

sudo apt-get install g++

我尝试了前面提到的所有答案,但在我的例子中,我必须手动指定iostream文件的include路径。当我使用MinGW时,路径是:

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

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

我正在Windows中使用cygwin运行eclipse

项目>属性>C/C++常规>预处理器包括…>提供者
在提供者列表中选择“CDT GCC内置编译器设置Cygwin”为我解决了这个问题。

在Windows上,使用Eclipse CDT Oxygen,这里描述的任何解决方案都不适合我。我在另一个问题中描述了对我有效的方法:.

在Linux上也将
${COMMAND}
设置为
g++

根据:

  • 计划
  • 性质
  • C/C++通用
  • 预处理器包括路径、宏等
  • 提供者
  • CDT GCC内置编译器设置
  • 获取编译器规格的命令
替换:

${COMMAND} ${FLAGS} -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

我想知道我们是否可以在设置中正确定义
命令
标志
变量,但我尝试将它们添加为构建变量,但没有成功

C问题的版本:


在Eclipse2020-03(4.15.0)、Ubuntu19.10和这个版本上进行了测试。

我在Eclipse2019-12中遇到了这个问题,其中包括以前解决过的问题,但后来没有解决。这是一个介子构建C/C++项目。我不确定到底发生了什么,但关闭项目并重新打开它为我解决了问题。

Platform?您是否安装了gcc?@DhaivatPandya:不,我是如何安装的?安装gcc并不总是足以解决包含问题。99%的时间都能解决问题。否则为什么iostream不会加载,除非您的系统出现严重问题?我认为,我们可以对每个答案都说这类响应,例如,如果是语法错误,并且有人修复了它,则响应可能是“可能是编译器有错误”。但是,发生这种情况的可能性很低。@DhaivatPandya:我想他的意思是安装gcc只是几个必要步骤之一。(除非eclipse能够神奇地检测到突然安装了gcc?可能,我不知道)注意,我在一个项目上使用了eclipse一个月,突然我所有的#include语句都收到了这个警告(gcc显然已安装),所以安装gcc不是一个真正的解决方案。我从#include得到了一个未解决的包含。但它对我起了作用。谢谢这对我有用。在我删除项目、重新导入、清理和重新构建之前,我仍然有类似Natanel的古怪行为。不,没有解决问题。有什么解决方案可以真正解决这个问题吗?另外,取消选中跨GCC内置编译器设置对我也有帮助。对我来说,在检查CDT GCC内置编译器设置后,我还必须在“语言设置提供程序选项”中检查下面的“使用项目间共享的全局提供程序”在它识别我的iostream之前。2.5个小时的搜索,终于找到了解决方案!
!ENTRY org.eclipse.cdt.core 4 0 2020-04-23 20:17:07.288
!MESSAGE Error: Cannot run program "-E": Unknown reason