天天看点

error LNK2019: 无法解析的外部符号及fatal error LNK1104: 无法打开文件“XXX".lib“

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“

继续阅读