error LNK2019: 無法解析的外部符號;fatal error LNK1120: 1 個無法解析的外部命令; 可能存在的問題
一、問題:使用一個.lib出現如下錯誤 (我使用的環境 vs2012)
error LNK2019: 無法解析的外部符號 _SSL_CTX_new,該符號在函數 _main 中被引用;
fatal error LNK1120: 1 個無法解析的外部命令;
二、出現該問題的原因:
1.原因:最大的可能就是使用的lib在引用的時候沒添加好。
解決方法:需要查看一下調用的配置是否正確:
項目--》屬性--》鏈接器--》常規--》附加庫目錄:填寫附加依賴庫所在目錄 分號間隔多項
項目--》屬性--》鏈接器--》輸入--》附加依賴項:填寫附加依賴庫的名字.lib 空格或分號間隔多項
2.原因:該lib的庫版本不對,需要編譯出32位程序,用32位的lib,編譯出64位程序,用64位的lib。
(我的問題是編譯32位的程序用了64位的庫,不知道編譯64位程序用32位的庫會不會有問題,未嘗試)
解決方法:
1) 可以先用vs的--》工具中的--》,使用命令:” dumpbin /all + lib名 “,確認該lib中是否含有有你需要的函數。
2) 嘗試修改編譯出來的程序類型,重新編譯(可以寫個測試lib的工程,單獨調用該lib中的函數,看看是否可以鏈接成功)。
-
“鏈接器-》高級-》目標計算機”設置為”MachineX64 (/MACHINE:X64)”
-
“鏈接器-》命令行-》其他選項”設置為” /machine:X64 /debug ”
-
“生成-》配置管理器-》活動解決方案平臺”設置為” X64 “,如果沒有就新建。
參考博客:http://blog.csdn.net/MR1269427885/article/details/53283257
error LNK2019: 無法解析的外部符號;fatal error LNK1120: 1 個無法解析的外部命令; 可能存在的問題