2012-01-03 14 views
2

未定義的參考錯誤是指缺少聲明或定義或兩者?未定義的參考錯誤的含義

編譯器:GCC在Linux上

+1

沒有實際的錯誤很難猜測,但很可能這是一個缺失的定義。 – 2012-01-03 09:11:19

+0

由於編譯器/鏈接器錯誤是工具特定的,爲了得到準確的答案,您應該告訴我們您正在使用的編譯器。 – 2012-01-03 09:11:48

+0

@JoachimPileborg那麼,在我的情況下,這是一個缺失的定義。但我想知道是否聲明丟失不是錯誤一樣嗎? – 2012-01-03 09:12:28

回答

1

Usualy(?如果不總是)這是一個鏈接錯誤,這意味着缺少的定義。缺少聲明的編譯錯誤類似於:「XXX未在此範圍內聲明」。

4

雖然它在技術上是編譯器特有的,但「未定義引用」幾乎總是意味着 - 如錯誤消息所述 - 定義丟失。我不知道任何編譯器會在引用unDECLARED符號時抱怨「未定義的引用」。

+0

謝謝,現在已經驗證,你是正確的。 – 2012-01-03 09:20:26

1

我在使用Qt庫時遇到了同樣的問題。 的解決方案是指定這導致-lblob文件中的.pro文件的路徑:

LIBS += -L/user/local/lib \ 
-lblob 
+1

這是一個非常特殊的情況,而不是「未定義引用」是否由缺少聲明或定義引起的問題的答案。 – jogojapan 2013-06-03 08:43:27

+0

@jogojapan從其餘的答案中,任何人都可以知道發生了什麼事情,添加QT特定答案並沒有什麼壞處。事實上,它有幫助。此外,它是不可見的,但我想大多數人覺得這有用的是同樣的人不會登錄,並不正常upvote ......此外,有時人們來到這裏通常似乎沒有實際上讓他們可以掌握圖片的奢侈品,讓他們有機會找到QT特定版本可能是他們目前需要的...... – n611x007 2017-03-22 09:37:05