VS編譯時一些常見錯誤積累LNK(實時更新)

1. lnk2019

    

       LNK2019錯誤一般是 compile 能找到 header(.h)文件,但是在鏈接時找不到需要的 lib 庫文件或者是 dll 文件。

一般認爲在編譯 OSG 簡單示例的時候遇到這樣的錯誤是因爲錯誤的設置了 lib2。OSG 的 lib 目錄中一般有兩組文件名相似的 lib 文件,其中一組以 d 結尾,例如:osgDBd.lib, osgViewerd.lib,這個表示該 lib 是用於調試 debug,而不帶 d 的一組是用於 release 版本。

如果沒有正確的指定 lib 文件,那麼一般會出現 error LNK2019 錯誤。比如,編譯時指定的是 debug, 但是依賴項設置的卻是不帶 d 的那一組 release 版本的 lib 文件;或者是編譯時指定 debug,但是依賴項設置的是帶 d 的一組。只要編譯的選項和調用的 lib 一致即可解決這個問題。

不過我仔細檢查了自己調用的 lib,編譯的選項和調用的 lib 都是 debug 版本的。

後來發現,開發機器是64位的,而編譯選項的目標平臺(platform)選擇的卻是 win32,修改爲 x64 之後解決了這個鏈接錯誤。

也看到有人說1,前面函數聲明與後面的函數定義參數類型不同時,有時 compile 能夠通過,但是 link 的時候會出現 error LNK2019 錯誤。

參考鏈接:

  1. error LNK2019: unresolved external symbol
  2. 求助:最簡單的OSG例子編譯出錯
  3. error LNK2019: unresolved external symbol "__declspec(dllimport)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章