无法解析外部符号的排查思路

在使用其他人的动态库或者第三方库的时候经常会遇到无法解析外部符号的问题。此时代码没有报语法错误,说明代码和你引用的动态库头文件都没问题,问题出现在lib文件上,所以我们要从3个方面进行排查:

1.检查lib文件的路径是否存在问题(这里以VS2015为例)

务必确保这两个地方的lib路径没有问题,具体查看哪个位置,看你的lib路径是在这两个地方中的哪一个添加的。

2.查看是否引入了对应的 .lib文件,可以在下图的位置中查找

3.如果前两个都没问题,那就是你的动态库提供的头文件和.lib文件的版本不对应。如果是引用了其他同事写的库,大概率是头文件的函数声明修改了,而动态库没有重新编译,导致你使用的头文件和lib文件不对应。如果是第三方库,请检查库的版本和头文件的版本是否对应。

这里提供一个判断的小技巧:如果像下面显示析构函数都无法解析(图中的序号1),基本可以确定是前两种情况。如果是动态库中的某一个函数无法解析(只有图中的序号2),那就是第3种情况了,此时要不然更换对应的头文件,要不然更换对应的lib文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值