error LNK2019: 無法解析的外部符号
fatal error LNK1104: 無法打開檔案“XXX".lib“
error LNK2019: 無法解析的外部符号這個錯之前見過很多次,能知道最根本的原因在于連結過程中沒有搜尋到程式用到的庫檔案,即*.lib
本質上要檢查以下幾點:
一、確定依賴項及生成順序
error LNK2019: 無法解析的外部符号及fatal error LNK1104: 無法打開檔案“XXX".lib“
error LNK2019: 無法解析的外部符号及fatal error LNK1104: 無法打開檔案“XXX".lib“ 二、確定庫使用的頭檔案
要使用庫的項目中要有包含使用的庫相關代碼的頭檔案
頭檔案中使用要確定,在庫中要預定義
DLLCLASS_EXPORTS
,而使用庫的項目中包含的頭檔案中不預定義該定義:
#ifdef DLLCLASS_EXPORTS
#define EXT_CLASS _declspec(dllexport)
#else
#define EXT_CLASS _declspec(dllimport)
#endif
error LNK2019: 無法解析的外部符号及fatal error LNK1104: 無法打開檔案“XXX".lib“ 三、附加依賴庫 及 附加依賴項:填寫附加依賴庫的名字.lib
error LNK2019: 無法解析的外部符号及fatal error LNK1104: 無法打開檔案“XXX".lib“
error LNK2019: 無法解析的外部符号及fatal error LNK1104: 無法打開檔案“XXX".lib“ 四、確定動态庫及其lib的位置,我這裡是和使用庫的用戶端.exe放在一起
error LNK2019: 無法解析的外部符号及fatal error LNK1104: 無法打開檔案“XXX".lib“