error LNK2019: 沒法解析的外部符號

VC++項目過程當中常常遇到沒法解析的外部符號 link error 2019 這樣的錯誤;很惱人~~~~~html

 

出現這種狀況通常是因爲頭文件中聲明瞭函數或者類型;可是沒有相關的實現源文件;一般狀況是咱們引入了第三方SDK的頭文件,並在程序中使用(引用)了頭文件中的函數或者類型;鏈接器卻沒法連接;windows

 

緣由及解決方案:函數

第一種可能:第三方SDK通常以DLL文件的形式提供給咱們,並提供相應的頭文件及LIB文件;LIB文件是連接時須要的,它包含了DLL中函數的想關信息,所以咱們只須要在項目添加對這些LIB的依賴既可;this

在VS2008中點擊項目-》右鍵-》屬性-》配置屬性-》連接器-》輸入-》附加依賴項:將相關的lib文件加入到附加依賴項中;spa

 

第二種可能:咱們調用的函數或者類型並未實現;此時咱們只要本身創建對應的源文件,並實現這些函數便可;htm

 

實例:error LNK2019: unresolved external symbol "public: __thiscall Thread_updateCurrentDateTime::Thread_updateCurrentDateTime(void)"......referenced in function ......blog

緣由:在類前面定義了類Thread_updateCurrentDateTime,但沒有實現構造函數Thread_updateCurrentDateTime(void)qt

 

參考:http://blog.sina.com.cn/s/blog_4b0020f301012750.htmlio

 

第三種可能:外部引用的基礎庫與當前所使用的基礎庫衝突(即同一基礎庫但版本不一樣);此時咱們須要從新編譯外部引用或者換掉基礎庫使用與外部引用相同版本的基礎庫;編譯

注意:qt-opensource-windows-x86-vs2010-4.8.7.exe與qt-opensource-windows-x86-vs2008-4.8.7.exe雖然均爲4.8.7版本,但仍然不能一塊兒使用,即非徹底相同的版本;

相關文章
相關標籤/搜索