什麼是 undefined reference/unresolved external symbol 錯誤?
顧名思義,宣告的符號未由你定義。這種情況可能由多個原因引起。讓我們看三個原因 −
忘記定義已宣告的名稱。例如,你在一個檔案中聲明瞭一個函式並在其他地方使用了它。但是你沒有提供它的定義。程式碼 −
#include<iostream>
void foo();
int main() {
foo(); // Declared but not defined
}你定義了它但沒有使用限定名稱。假設你建立一個帶有方法的類,並定義了該方法,但忘記使用作用域解析將該函式連結到該定義,並在其他地方使用了該函式。例如,
#include<iostream>
class A {
void foo();
};
void foo() { } // should have used A::foo
int main() {
A a;
a.foo(); // Not defined!
}你未按正確的順序包含依賴項。連結器嘗試按你指定給它的順序進行連結。因此,如果你在定義之前使用了一個方法,它可能會給出這個問題。
無法建立一個可能導致這個問題的條件的詳盡列表。不過,你可以參考這篇文章,裡面有一個經過精心整理的可能原因列表 − https://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix
廣告
資料結構
網路
資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP