33

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

“无法解析符号‘std’”

代码

#include <iostream>
using namespace std;

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

编辑:基于@RobertoWilko 评论,删除“使用命名空间标准;”行删除了错误。但是没有创建二进制文件。“启动失败。找不到二进制文件”。如何纠正这个?

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

11 回答 11

27

试试这个步骤:https ://www.eclipse.org/forums/index.php/t/636348/

项目 -> 属性 -> C/C++ 常规 -> 预处理器包括路径、宏等 -> 提供程序

  • 激活 CDT GCC 内置编译器设置
  • 停用使用项目之间共享的全局提供程序
  • 添加命令行参数 -std=c++11。

例子

于 2014-11-07T14:28:56.957 回答
17

我不知道您是否已经解决了这个问题,但我想发布我的解决方案,以解决可能遇到相同问题的人。

  1. 首先,确保您的项目资源管理器中有“包含”文件夹。如果没有,请转到第二步。如果有,请转到第三步。

  2. 二、Window -> Preferences-> C/C++-> Build >Environment:创建两个环境变量:

    a) 名称:C_INCLUDE_PATH值:/usr/include

    b) 名称:CPLUS_INCLUDE_PATH值:/usr/include/c++

转到Cygwin/usr/include/,如果找不到文件夹“c++”,请从中复制它\cygwin\lib\gcc\i686-pc-cygwin\X.X.X\include ,然后重新启动 Eclipse。

  1. 第三,在项目资源管理器中右键单击您的项目 -> 属性 -> C/C++ 常规 -> 路径和符号 -> 包含 -> 语言:GNU C++ 如果可以在“包含目录”中找到一些 C++ 文件夹,然后单击应用并确定. 更改一下您的代码,然后保存。

你会发现不会有符号无法解决的问题。

我记录了我的解决方案,希望有人能从中受益。

于 2014-08-15T13:51:38.590 回答
7

您可以像这样重写代码:

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

using namespace std;
于 2012-08-05T11:20:26.087 回答
7

对于 MinGW,这对我有用:

  • 右键项目,选择Properties
  • 前往C/C++ General- Paths and Symbols- Includes- GNU C++-Include directories
  • 选择Add...
  • 选择Variables...
  • 选择MINGW_HOME并单击OK
  • 单击ApplyOK

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


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

于 2016-06-03T11:22:08.720 回答
5

项目中的包含文件夹可能缺少 /usr/include/c++。在项目资源管理器中转到您的项目,右键单击 -> 属性 -> C\C++ 构建 -> 环境 -> 添加 -> value= /usr/include/c++。重启日食。

于 2016-07-15T07:36:49.597 回答
3

让我解决问题的方法是:项目 -> 属性 -> C/C++ 常规 -> 预处理器包含路径、宏等 -> 提供程序 -> CDT GCC 内置编译器设置,启用并禁用 CDT Cross GCC 内置编译器设置

于 2015-06-25T15:21:49.117 回答
2

安装C++ SDK

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

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

于 2015-11-10T11:52:25.317 回答
1

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

于 2016-11-22T14:49:36.147 回答
1

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

  1. 创建一个新项目,确保它被创建为一个交叉编译的解决方案。您必须添加与您的交叉编译器位置匹配的 /usr/bin 目录。
  2. 在项目属性中为交叉编译器添加 C 和 C++ 头文件。
  3. 对于 C:Project > Properties > C/C++ General > Paths and Symbols > Includes > GNU C. Add... -> 从交叉编译器到 /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. 如果需要,通过右键单击项目 > 索引 > 重建来重新索引所有项目。
于 2020-05-27T15:30:14.350 回答
0

在我看来,您报告的问题是由以下原因引起的:

  1. 您正在尝试编译 C 代码并且源文件具有 .cpp 扩展名
  2. 您正在尝试编译 C++ 代码并且源文件具有 .c 扩展名

在这种情况下,Eclipse 无法识别要使用的正确编译器。

于 2015-03-30T18:35:08.560 回答
0

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

于 2020-12-28T14:19:25.107 回答