2010-10-18 25 views
19

在.cpp文件上發出g ++命令後出現以下錯誤: 錯誤:'exit'未在此範圍內聲明 錯誤:'printf'沒有在此範圍內聲明Linux上的C++不識別exit()和printf()等命令

問題是,當我在另一臺linux機器上編譯該程序時,一切都很順利。我試着四處搜尋,但是我發現所有的東西都需要包含像'stdlib.h'這樣的文件。

難道是我錯過了我的操作系統上的一些庫?如果是這樣,可能是什麼?

+4

請張貼代碼,您可能會缺少標題。 – birryree 2010-10-18 04:41:46

+0

或使用聲明。 – 2010-10-18 04:54:45

回答

27

最近的GCC版本已經變得越來越嚴格,程序員需要履行什麼責任。包括cstdlibcstdio等標題,並從std命名空間訪問這些函數。

+0

#include #include using namespace std; 這是當前標題。不知何故,它可以在其他Linux操作系統上正常工作,而且我需要了解如何操作。爲此添加額外的標題目前不是一個選項。 – Max 2010-10-18 05:06:19

+2

然後在GCC的最新版本下編譯它也*目前不是一個選項。你的來電。 – 2010-10-18 05:08:34

+1

嗯,沒關係。有什麼辦法可以繞過這個嗎?也許在某處安裝某些東西或更改一些參數?這個變化發生在哪個版本的gcc之間你有什麼想法嗎? – Max 2010-10-18 05:11:26

2

如果您需要一個快速(和骯髒)的修復嘗試:

using namespace std; 

另外,還要確保你包括適當的IO頭。

3

在終端: - 當你寫 人退出: - 它會顯示

exit - cause normal process termination 

概要 的#include stdlib.h中

void exit(int status); 

,所以你需要定義頭的#include STDLIB。 h

9

專門針對‘exit’ was not declared in this scope所有你需要的是:

#include <stdlib.h>