一、问题:使用一个.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
时间: 2024-11-05 20:41:30