error LNK 2019 無法解析的外部符號

2022-08-30 19:54:12 字數 619 閱讀 2791

1.如果你是使用的第三方庫,你看一下mainplay這個函式是在那個標頭檔案(比如xx.h)裡宣告的,然後找到其對應的實現庫,將其拷貝到你的debug目錄下,再在你的原始檔裡新增

#pragma comment(lib,"xx.lib")

2.如果你是自己實現的mainplay,那麼請確保你宣告了該函式後還在原始檔裡實現了它,而且這個原始檔被新增到了你的工程裡(這是為了編譯該檔案,然後將這個函式生成到obj裡)

可能你不太明白。這裡簡單說一下原理。

如果是第三方庫,通常作者會提供標頭檔案給你,你include了這個標頭檔案,就可以使用其中宣告的函式,如果沒有問題,那編譯可以通過。但是到鏈結的時候,編譯器需要將函式的實現**鏈結到最終的可執行**裡,而函式的實現**通常就在lib或dll中,#pragma comment(lib,"xx.lib")就是告訴編譯器去xx.lib裡找函式的實現**。

而如果是你自己來實現這個函式,只有宣告是不夠的,還需要你在源**(.cpp)裡去實現它,編譯器編譯這個cpp的時候會將你的實現**輸出到.obj裡,聯結器直接去obj裡找。

總的來說,【無法解析的外部符號】這樣的錯誤是因為你只宣告了函式原型(編譯可通過),但卻沒有提供函式的實現**(這會導致鏈結失敗lnk2019)。

error LNK2019 無法解析的外部符號

在mfc中編譯時出現了以下錯誤 提示為error lnk2019 無法解析的外部符號 wchar t stdcall com util convertstringtobstr char const 1。我先介紹一下,vs編譯器中的乙個選項 zc wchar t wchar t 是本機型別 在vc6。...

error LNK2019 無法解析的外部符號

osprocessdlg.obj error lnk2019 無法解析的外部符號 public struct pcb thiscall clinkqueue initialpcb class atl cstringt int,int initialpcb clinkqueue qaepaupcb v...

error LNK2019 無法解析的外部符號

無法解析的外部符號 symbol 是指該符號在函式 function 中被引用,在function中找到了未定義的外部符號 symbol 若要解決此錯誤,請提供符號定義或移除引用它的 3.對於從早期版本公升級到當前版本的 c 專案,如果定義了 unicode 並且入口點為 winmain,需要將入口...