2017-06-12 113 views
0

我今天開始用編程進行冒險,並遇到一些麻煩。雖然wiritngC語言錯誤

#include <stdio.h> 

main(void) 
{ 
printf ("hello, world\n"); 
} 
C語言

網站上的所謂cs50.io然後寫鏗鏘的hello.c我有以下錯誤:

enter image description here

任何想法如何解決呢?

+6

請不要將錯誤作爲圖片發佈。將它們粘貼爲問題中的文本。 – BackSlash

+4

首先,嘗試'int main(void)' –

+5

應該與您的問題無關(這似乎是Clang的錯誤安裝?),但應該明確聲明main函數返回int。你最後不需要'return'語句,但'main'的聲明應該是正確的('int main(void)')。 –

回答

0

首先,您可以在StackOverflow上找到已發佈的答案。您應該閱讀您的錯誤消息,然後嘗試通過您自己的搜索來了解它們的含義。

undefined reference to 'main'錯誤在這裏解釋: Undefined reference to main - collect2: ld returned 1 exit status

從本質上講,在C語言中,空是不是main()功能的有效回報(即void main(void))。我認爲gcc編譯器與clang類似,當main()沒有規範時,您的回報默認爲int。所以,當需要返回時,你有沒有返回值的main()函數。閱讀其他StackOverflow的Q &一種在有效簽名對C的main()函數的詳細信息:

What are the valid signatures for C's main() function?

,因爲我不熟悉clang編譯器,也有可能是別的東西,除了這些錯誤發生。

0

作爲一種良好的做法,您需要使用標誌進行編譯,以說明您可能在代碼中存在但可能會被編譯器解僱的錯誤/警告。

-錯誤是一個偉大的旗幟,將所有警告都視爲錯誤。你會重新編譯爲鐺-Werror的hello.c

在這種情況下,因爲你只是印刷和不返回任何東西,你應該有無效的主要(無效)

與您所提供的代碼,您應該始終考慮上述函數返回的內容。

乾杯。