【问题标题】:Eclipse C++: Symbol 'std' could not be resolvedEclipse C++:无法解析符号“std”
【发布时间】:2012-08-02 14:42:21
【问题描述】:

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

“无法解析符号‘std’”

代码

#include <iostream>
using namespace std;

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

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

【问题讨论】:

  • 不,using namespace std; 确实 not 意味着 std:: 突然总是意味着 std::std::
  • @RobertoWilko 删除该行删除了错误。但是没有创建二进制文件。你有什么主意吗? “启动失败。找不到二进制文件”
  • @Lijo- 我在on this forum 上读过一些关于类似问题的文章,但是对于 CrossGCC,您可能想看看。我不是故意混淆情况。删除该行后,您必须添加 std::,如果您不知道,请见谅。
  • 检查“C++ 常规”选项卡中的“路径和符号”。如果您选择工具链,您应该会看到标准头文件的正确包含路径。当然,前提是环境配置正确。
  • 检查这个解决方案,我有同样的问题:stackoverflow.com/a/24981627/1161594

标签: c++ eclipse eclipse-cdt


【解决方案1】:

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

前往

Project -> Properties -> C/C++ General -> Preprocessor Include Paths, Macros, etc. -> Providers

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

【讨论】:

  • 再一步:重启eclipse。 (对我来说)
【解决方案2】:

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

  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. 第三,在Project Explorer -> Properties -> C/C++ General -> Paths and Symbols -> Includes -> Languages:GNU C++ 中右键单击您的项目 如果您可以在“包含目录”中找到一些 C++ 文件夹,则单击应用和确定。稍微更改一下您的代码,然后保存。

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

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

【讨论】:

    【解决方案3】:

    你可以像这样重写代码:

    #include<iostream>
    #include<stdio.h>
    
    using namespace std;
    

    【讨论】:

    • “为了解决问题,他们在头文件中添加了.h”误导。它是具有 .h 扩展名的“旧”标头。例如,“新”(如果 15 岁对您来说意味着新)stdio.h 称为 cstdio。无论如何,我不明白这是如何回答这个问题的。
    • 添加#include 解决了这个问题。因为在这个头文件中声明了std。
    【解决方案4】:

    对于 MinGW,这对我有用:

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

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


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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          安装C++ SDK

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

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

          【讨论】:

          • 这对我有用,而网络上没有其他功能。我不知道是否需要,但重新启动后我确实单击了“项目 > C/C++ 索引 > 重新解析未解决的包含”。我正在运行 openSUSE(所以我没有 MinGW 或 Cygwin)。
          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

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

            1. 创建一个新项目,确保它是作为交叉编译解决方案创建的。您必须添加与您的交叉编译器位置匹配的 /usr/bin 目录。
            2. 在项目属性中为交叉编译器添加 C 和 C++ 头文件。
            3. 对于 C:项目 > 属性 > C/C++ 常规 > 路径和符号 > 包含 > GNU C。添加... -> 从交叉编译器到 /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. 如果需要,请通过右键单击项目 > 索引 > 重建来重新索引所有项目。

            【讨论】:

              【解决方案10】:

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

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

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

              【讨论】:

                【解决方案11】:

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-11-18
                  • 2016-02-13
                  • 2012-06-03
                  • 2014-07-23
                  • 1970-01-01
                  相关资源
                  最近更新 更多