共用方式為


遺漏函式主體或變數

只要使用函式原型,編譯器就可以繼續而不會發生錯誤,但連結器無法解析對位址的呼叫,因為沒有保留函式程式碼或變數空間。 在建立連結器必須解析的函式呼叫之前,您不會看到此錯誤。

範例:呼叫未定義的函式

main 中的函式呼叫會導致LNK2019,因為原型可讓編譯器認為函式存在。 連結器發現它沒有。

// LNK2019_MFBV.cpp
// LNK2019 expected
void DoSomething(void);
int main() {
   DoSomething();
}

範例:呼叫實作的函式

在 C++ 中,請確定您包含類別特定函式的實作,而不只是類別定義中的原型。 如果您要在標頭檔外部定義 類別,請務必在函式之前包含類別名稱 ( Classname::memberfunction )。

// LNK2019_MFBV_2.cpp
// LNK2019 expected
struct A {
   static void Test();
};

// Should be void A::Test() {}
void Test() {}

int main() {
   A AObject;
   AObject.Test();
}

另請參閱

連結器工具錯誤 LNK2019