2010-08-26 83 views
2

這個錯誤是什麼意思?這個`ld`錯誤(「undefined reference」)是什麼意思?

/tmp/ccevEqoI.o: In function `main': 
funcptr.c:(.text+0x61): undefined reference to `AddALL' 
collect2: ld returned 1 exit status 

我試圖寫一個函數將所有整數達到由用戶輸入的限制 。


轉錄「答案」,這是從OP評論:

我寫了一個程序,將添加的所有整數高達指定的限制。爲此我必須寫一個函數。所以我做了一個名爲'AddAll'的函數,但是當我從程序中調用它時,我將它稱爲'AddALL'。

說明:C區分大小寫。最終當我改變了我所稱的功能的名稱。它編譯完美:)

只是認爲這條信息將有助於初學者。

+1

在編譯階段,你應該得到一個警告,說明AllALL沒有原型(並且編譯器假設返回類型爲int)。 – 2010-08-26 05:22:06

回答

5

它告訴你,函數'AddALL'的定義找不到。確保在編譯/鏈接時包含包含'AddALL'的目標文件。

6

這意味着鏈接器(在gcc中稱爲ld)在指定的目標文件中未找到符號AddALL。基本上,這個函數沒有主體,或者它是一個聲明爲extern而沒有定義的變量。

0

我寫了一個程序,將所有的整數加到限制指定的範圍內。爲此我必須寫一個函數。所以我做了一個名爲'AddAll'的函數,但是當我從程序中調用它時,我將它稱爲'AddALL'。

注意:C區分大小寫。最終當我改變了我所稱的功能的名稱。它編譯完美:)

只是認爲這條信息將有助於初學者。

+0

在編譯階段,你應該得到一個警告,那就是沒有'AllALL'的原型(並且編譯器假定返回類型爲int)。 – 2010-08-26 04:43:16

+0

你的'答案',Pavitar,應該是這個問題的一個修正案 - 就像我所做的一樣。你還應該注意@Ben Voigt的評論,如果編譯器正在產生警告,你應該聽從它們,如果編譯器沒有產生關於缺少原型的警告,你沒有明智地設置編譯器選項。你現在應該刪掉這個'答案'。 – 2010-08-26 05:05:36

+0

@Jonathan Leffler先生,我沒有得到你。 因爲我只是新來的整個編程世界。無論我發佈什麼幫助我解決我的錯誤。 – Pavitar 2010-08-26 05:15:14