【问题标题】:C++ on Linux not recognizing commands like exit() and printf()Linux 上的 C++ 无法识别 exit() 和 printf() 等命令
【发布时间】:2010-10-18 04:39:18
【问题描述】:

对 .cpp 文件发出 g++ 命令后出现以下错误: 错误:未在此范围内声明“退出” 错误:“printf”未在此范围内声明

问题是当我在另一台 linux 机器上编译这个程序时,一切都很顺利。我试着四处搜索,但我发现我需要包含像“stdlib.h”这样的文件。

可能是我的操作系统上缺少一些库吗?如果有,可能是什么?

【问题讨论】:

  • 请发布代码,您可能缺少标题。

标签: c++ linux


【解决方案1】:

最新版本的 GCC 对程序员需要履行的职责变得更加严格。包含cstdlibcstdio 等标头并从std 命名空间访问这些函数。

【讨论】:

  • #include #include using namespace std;这是当前的标题。不知何故,它只适用于其他 Linux 操作系统,我需要找出方法。目前还不能为此添加额外的标题。
  • 然后在最新版本的 GCC 下编译它目前不是一个选项。您的来电。
  • 嗯,好吧。有什么办法可以规避这种情况吗?也许在某处安装一些东西或更改一些参数?你知道这个变化发生在哪些版本的 gcc 之间吗?
  • 我不知道你为什么要绕过标准。我的意思是,这听起来很傻...gcc.gnu.org/gcc-4.3/porting_to.htmlgcc.gnu.org/gcc-4.4/porting_to.html
  • 非常感谢。我知道这样做很奇怪,但如果可以的话,它会让我的生活更轻松,所以我会竭尽全力去做。
【解决方案2】:

对于‘exit’ was not declared in this scope,您只需要:

#include <stdlib.h>

【讨论】:

    【解决方案3】:

    在终端中:- 当你写 man exit :- 它会显示

       exit - cause normal process termination
    

    概要 #include stdlib.h

       void exit(int status);
    

    所以你需要定义头文件#include stdlib.h

    【讨论】:

      【解决方案4】:

      如果您需要快速(且肮脏)的修复,请尝试:

      using namespace std;
      

      还要确保包含适当的 io 标头。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 2015-06-29
        • 2021-08-21
        • 2022-06-24
        • 2016-04-01
        • 1970-01-01
        相关资源
        最近更新 更多