Visual studio2019 中編譯c++出現LNK2019,LNK2001: 無法解析的外部符號,包含如下情況

錯誤信息報錯如下

1.有可能是採用lib庫的平臺配置錯誤,打開項目屬性發現當初配置的是Release x64,而執行代碼是Debug x64

 修改執行代碼的配置和平臺即可,執行成功

2.編譯器會出現“LNK2001: 無法解析的外部符號”錯誤。類似前面提示(xxx.lib,xxx.obj等)libcrypto.lib : error LNK2001: 無法解析的外部符號,我們查找返現這個庫在如下位置

這個是最常見的問題,具體步驟:
項目、屬性、鏈接器、常規、附加庫目錄:填寫附加依賴庫所在目錄


項目、屬性、鏈接器、輸入、附加依賴項:填寫附加依賴庫的名字.lib (libcrypto.lib)

3,若已經按照上述步驟進行配置,但編譯器還是報錯,可能情況如下:

沒有添加指定預編譯宏

在使用curl靜態庫時,卻遇到了編譯鏈接錯誤:
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_init
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_setopt
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_perform
1>testcurl.obj : error LNK2001: unresolved external symbol __imp__curl_easy_cleanup

解決方法是,在自己的項目屬性中添加一個預編譯宏,CURL_STATICLIB,

爲了避免遇到以上問題建議:

1、引用第三方庫時,確認lib庫是否使用相同編譯平臺
2、確認編譯選項是否一致。比如運行時庫和字符集
3、若需要則添加指定編譯宏
4、添加附加庫目錄和附加依賴項
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章