Eclipse C ++:无法解析符号'std'

时间:2012-08-05 06:54:08

标签: c++ eclipse eclipse-cdt

我在TestExecute.cpp中遇到此错误 -

  

“符号'std'无法解析”

CODE

#include <iostream>
using namespace std;

我刚刚在Eclipse中创建了一个可执行项目(在Windows 7中),如下所示。看来我正在选择一个不受支持的工具链。是这样吗?我已经安装了Cygwin,它可以在首选项中使用。

编辑:根据@RobertoWilko评论,删除行“using namespace std; “删除了错误。但是没有创建二进制文件。”启动失败。二进制没有找到“。如何纠正这个?

enter image description here

enter image description here

enter image description here

enter image description here

11 个答案:

答案 0 :(得分:18)

尝试此步骤:https://www.eclipse.org/forums/index.php/t/636348/

基本上: &#34;转到项目 - &gt;属性 - &gt; C / C ++一般 - &gt;预处理器包括路径,宏等 - &gt;提供商 - &gt; CDT GCC内置编译器设置,取消激活使用项目之间共享的全局提供程序并添加命令行参数-std = c ++ 11。

答案 1 :(得分:15)

我不知道你是否已经解决了这个问题,但我想发布我的解决方案,因为那些可能会遇到同样的问题。

  1. 首先,确保您拥有&#34;包含&#34; Project Explorer中的文件夹。如果您没有,请转到第二步。如果你有,请转到第三步。

  2. 其次,窗口 - &gt;首选项&GT; C / C ++ - &gt;构建&gt;环境:创建两个环境变量:

    a)姓名:C_INCLUDE_PATH价值:/usr/include

    b)姓名:CPLUS_INCLUDE_PATH价值:/usr/include/c++

  3. 转到Cygwin/usr/include/,如果找不到文件夹&#34; c ++&#34;,请从\cygwin\lib\gcc\i686-pc-cygwin\X.X.X\include复制,然后重启Eclipse。

    1. 第三步,在 Project Explorer中右键单击您的项目 - &gt;属性 - &gt; C / C ++一般 - &gt;路径和符号 - &gt;包括 - &gt;语言:GNU C ++ 如果你能在&#34; Include目录中找到一些C ++文件夹&#34;然后单击Apply并单击OK。改变你的代码,然后保存。
    2. 你会发现没有符号无法解决的问题。

      我记录了我的解决方案,希望有人可以获得好处。

答案 2 :(得分:6)

您可以像这样重写代码:

#include<iostream>
#include<stdio.h>

using namespace std;

答案 3 :(得分:4)

对于MinGW,这对我有用:

  • 右键单击项目,选择Properties
  • 转到C/C++ General - Paths and Symbols - Includes - GNU C++ - Include directories
  • 选择Add...
  • 选择Variables...
  • 选择MINGW_HOME,然后点击OK
  • 点击ApplyOK

您现在应该在项目浏览器的“包含”中看到几个MinGW路径 错误可能不会立即消失,您可能需要刷新/构建项目。

如果您使用的是Cygwin,则可能存在等效变量。

答案 4 :(得分:4)

项目中的includes文件夹可能缺少/ usr / include / c ++。 转到项目资源管理器中的项目,右键单击 - &gt;属性 - &gt; C \ C ++ Build - &gt;环境 - &gt;添加 - &gt; value = / usr / include / c ++。重启eclipse。

答案 5 :(得分:3)

让我解决问题的原因是:项目 - &gt;属性 - &gt; C / C ++一般 - &gt;预处理器包括路径,宏等 - &gt;提供商 - &gt; CDT GCC内置编译器设置,启用并禁用CDT Cross GCC内置编译器设置

答案 6 :(得分:1)

安装 C ++ SDK

帮助&gt;安装新软件&gt;使用:path for your eclipse version&gt;搜索 C ++ 并安装C ++ sdk开发工具。

路径示例:Mars - http://download.eclipse.org/releases/mars

答案 7 :(得分:1)

我在Kubuntu上使用带有16.04内核的Eclipse Neon遇到了这个问题,我不得不将我的#include <stdlib.h>更改为#include <cstdlib>这使得std名称空间&#34;可见&#34;到Eclipse并删除了错误。

答案 8 :(得分:1)

这对我来说适用于C / C ++开发人员的Eclipse IDE版本:2020-03(4.15.0)Build ID:20200313-1211。另外,我的代码是交叉编译的。

  1. 创建一个新项目,确保将其创建为交叉编译的解决方案。您必须添加与交叉编译器位置匹配的/ usr / bin目录。
  2. 在“项目属性”中为交叉编译器添加C和C ++标头。
  3. 对于C:项目>属性> C / C ++常规>路径和符号>包含> GNUC。添加...->从交叉编译器到/ usr / include目录的路径。
  4. 对于C ++:项目>属性> C / C ++常规>路径和符号>包含> GNU C ++。添加...->从交叉编译器到/ usr / include / c ++ /目录的路径。
  5. 如果您不知道您的gcc版本,请在控制台中输入以下内容(确保它是您的跨gcc二进制文件):

    gcc -v

  6. 修改交叉编译器的方言(这就是技巧)。

  7. 对于C:项目>属性> C / C ++构建>设置>工具设置>跨GCC编译器>方言。设置为ISO C99(-std = C99)或适合您C文件标准的任​​何格式。
  8. 对于C ++:项目>属性> C / C ++构建>设置>工具设置> Cross G ++编译器>方言。设置为ISO C ++ 14(-std = c ++ 14)或适合您C ++文件标准的任​​何格式。
  9. 如果需要,通过右键单击项目>“索引”>“重建”来重新索引所有项目。

答案 9 :(得分:0)

我所报告的问题在我看来是由以下原因造成的:

  1. 您正在尝试编译C代码,源文件的扩展名为.cpp
  2. 您正在尝试编译C ++代码,源文件具有.c扩展名
  3. 在这种情况下,Eclipse无法识别要使用的正确编译器。

答案 10 :(得分:0)

首先尝试重新启动 Eclipse,在我的情况下,我更改了项目的不同编译器设置,然后显示此消息,重新启动后即可工作。