共用方式為


遺漏函式主體或變數

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

範例:呼叫未定義的函式

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