1. 程式人生 > >VS常見錯誤之一:error LNK2019: 無法解析的外部符號

VS常見錯誤之一:error LNK2019: 無法解析的外部符號

轉自:http://www.cnblogs.com/yangcs/p/5087490.html  

由於經常使用VS的開發環境,所以經常遇到一些錯誤提示,其中error LNK2019是很常見的一個報錯。今天將此錯誤的原因和常見解決辦法根據自己的經驗小小總結一下。

  問題樣式:

  1>SingleView.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 "protected: int __thiscall CSingleView::CreateViewGLContext(struct HDC__ *)" (?                                                                

[email protected]@@[email protected]@@Z) 中被引用

  原因:找不到相應的庫檔案,即xx.lib檔案。找不到庫檔案的原因可能有以下幾種:

  ①你使用別人的庫,比如說OPenCV的庫,OpenGL的庫等等第三方庫。常見情況是你只是包含了標頭檔案,但是沒有引入庫檔案

  ②你沒有使用別人的庫,微軟自帶的一些庫也可能出現這樣的問題。這時常見情況是連結失敗的函式所在的標頭檔案在專案屬性的包含目錄下,但是相應的庫檔案卻不在專案屬性的預設庫目錄裡。比如說常見問題

  樣式裡的CreateViewGLContext(struct HDC__ *)函式就是這種情況,此函式在標頭檔案wingdi.h裡定義,這個標頭檔案在專案屬性中預設的包含目錄下,但是對應的庫檔案opengl32.lib卻不在庫目錄裡

  ③你使用了自己做的庫檔案。這種情況自己沒有試過,看過網上的一些說法

  解決辦法:核心是新增相應的庫檔案即可

  對於情況①,有兩種辦法,一種是通常配置一下專案屬性就好(在你相應開發環境配置好的前提下),在專案屬性的庫目錄裡面新增相應庫檔案所在的目錄,然後在連結器->輸入->附加依賴項里加入對應的庫檔案即可

  

  第二種解決辦法是利用預處理命令#pragma comment (lib, "xxx.lib"),關於這條命令的使用方法不是本文的主要目的,讀者可參見網上其他部落格。這樣做的前提是所用的庫目錄在VS的預設庫目錄下或者庫檔案所在目錄已經被新增到專案的庫目錄裡或者相應的庫檔案已經被你拷貝到當前專案目錄下,相當於是第一種方法的“程式碼化”版本

  對於情況②,你只需要找到函式所在的庫檔案(通常按照函式名在網上搜即可找到函式所在的庫檔案),然後檔案首部新增#pragma comment (lib, "xxx.lib")即可

  對於情況③,因你使用方法不同,可參見情況一和情況二處理

相關推薦

VS常見錯誤之一error LNK2019: 無法解析外部符號

轉自:http://www.cnblogs.com/yangcs/p/5087490.html   由於經常使用VS的開發環境,所以經常遇到一些錯誤提示,其中error LNK2019是很常見的一個報錯。今天將此錯誤的原因和常見解決辦法根據自己的經驗小小總結一下。  

VS 常見問題之一error C3867: “CRect::Width”:  函式呼叫缺少引數列表;請使用“&CRect::Width”建立指向成員的指標

最近找了本matlab和vs混合程式設計的書,想要實現matlab圖形繪製在MFC介面上介面上,可能是書籍年限比較老,有些程式碼出現了錯誤,具體程式碼參考上篇部落格,下面寫下我解決這些問題的方法。 錯誤   1    error C3867: “CRect::Width

VS明明定義了函式卻編譯出錯error LNK2019: 無法解析外部符號

1>LINK : 沒有找到 E:\VS2008\ASM_C_test\Debug\ASM_C_test.exe 或上一個增量連結沒有生成它;正在執行完全連結 1>ASM_C_test.obj : error LNK2019: 無法解析的外部符號 "void __

VS2010error LNK2019 :無法解析外部符號

最近在研究sumo,前幾天將編譯環境都搭建好了後,自己在解決方案的基礎上新增加了一個專案,但是突然冒出來好多問題,其他都已經通過網路搜尋解決。關於錯誤:error LNK2019 :無法解析的外部符號。網路方法很多,自己按照各種方法測試後依然不能解決。最後想到,和已經編譯好

專案生成出現問題error LNK2019: 無法解析外部符號 __imp___vsnprintf

今天在專案生成時遇到了問題:error LNK2019: 無法解析的外部符號 __imp___vsnprintf… 幸好發現stackoverflow有人回答了這個問題http://stackoverflow.com/questions/29556290/ra

QT、VS常見bug及解決辦法(四)——錯誤    1    error LNK2019: 無法解析外部符號

問題1:無法解析的外部符號 "void __cdecl cv::fastFree(void *)" 錯誤 1 error LNK2019: 無法解析的外部符號 "void __cdecl cv::fastFree(void *)" ([email protecte

VC++常見錯誤原因解析error LNK2019: 無法解析外部符號 "public: void __thiscall

VC++常見錯誤原因解析之error LNK2019: 無法解析的外部符號 "public: void __thiscall 出現這個錯誤,應該首先檢視“#include”語句是否包含,或者是否包含正確。符號無法解析意味著編譯器知道有這個符號存在,也就是有宣告,但在連結時,找不到實現程式碼,

vc2008 錯誤error LNK2001: 無法解析外部符號之一

error LNK2001: 無法解析的外部符號   "protected: virtual struct AFX_MSGMAP const * __thiscall ****::GetMessageMap(void)const " ([email protect

錯誤 1 error LNK2019: 無法解析外部符號 "public: __thiscall Distance::Distance(int)" (??0Distance@@QAE@H@Z),該符號在函數 _main 中被引用

his 無法 析構函數 this distance AI sta 語法 解析 錯誤: 錯誤 1 error LNK2019: 無法解析的外部符號 "public: __thiscall Distance::Distance(int)" (??0Distance@@QAE@

Visual Studio 2013 C++ 呼叫mysql錯誤 error LNK2019: 無法解析外部符號
C++ error LNK2019: 無法解析外部符號 錯誤解決方案

今天在實現類模板特例化的時候遇到一個問題,就是把類模板函式實現放到類的cpp檔案中,然後在main函式中使用這個類的時候,就會出現無法解析的外部符號:函式名(xxxx)等錯誤,那麼出現這個錯誤的原因是什麼呢?原因就是現在的編譯裡不支援模板函式的申明和實現分開,要像上面那樣使用

VS2013執行錯誤error LNK2001: 無法解析外部符號

1>Goods.obj: error LNK2001:無法解析的外部符號 "int (* arr)[20]" ([email protected]@[email protected]) 1>Connect.obj: error LNK2001

Vs 中出現 error LNK2019: 無法解析外部符號的解決參考

    今天編輯動態庫連結生成靜態檔案,但是呼叫dll封裝的類的幾個函式後出現如下錯誤: 錯誤: 1>正在連結... 1>   正在建立庫 ..\ssnmate\Debug\QQDLL.lib 和物件 ..\ssnmate\Debug\QQDLL.exp 1&g

C++的error LNK2019: 無法解析外部符號編譯錯誤

1>Proxy.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 "public: enum ProxyStatus __thiscall CProxy::ConnectProxyServer(u

error LNK2019: 無法解析外部符號 六處錯誤的糾正

錯誤    18    error LNK2019: 無法解析的外部符號 "public: void __thiscall cv::FeatureDetector::detect(class cv::Mat const

VS除錯報錯 “error LNK2019: 無法解析外部符號 ......”

生成解決方案的時候,報錯“error LNK2019: 無法解析的外部符號。。。。” 一般來說,這是由於缺少相應的依賴庫.lib檔案造成的,解決方法就是到【屬性管理器】——【通用屬性】——【連結器】——【附加依賴項】裡新增相應的.lib檔名稱。 如果不知道要新增什麼.li

error LNK2019: 無法解析外部符號;fatal error LNK1120: 1 個無法解析外部命令; 可能存在的問題

alt 配置 pan ron ima detail deb 16px 管理 一、問題:使用一個.lib出現如下錯誤 (我使用的環境 vs2012)   error LNK2019: 無法解析的外部符號 _SSL_CTX_new,該符號在函數 _main 中被引用;   fa