VS2013 curl源码编译(三)之libssh2 1.8.0编译

本文介绍了如何在VS2013环境下编译libssh2 1.8.0库,包括下载资源、配置zlib和openssl、解决编译过程中的问题,特别是针对openssl库链接错误的解决方法。

已编译好的资源:https://download.csdn.net/download/key_xiaodj/10825541

一、资源下载
libssh2——官网地址:https://www.libssh2.org/
最新版1.8.0

二、资源配置
 

三、VS2013编译支持zlib、openssl的libssh2库
这里我选用的是32位的 zlib和openssl动态库。
用VS2013 打开libssh2-1.8.0\win32\libssh2.dsw文件,该文件虽然是VC6的工程,但是可以用VS2013打开升级即可。

主要对OpenSSL DLL Debug 与 OpenSSL DLL Release 进行配置libssh2动态库的debug和release版本,需要编译静态库的配置OpenSSL LIB Debug 与 OpenSSL LIB Release.

添加openssl 和 zlib的头文件

添加openssl和zlib的库目录

添加openssl和zlib的lib依赖文件

不添加crypt32.lib会出问题,具体看后面遇到的问题

 

 

 

四、遇到的问题

cl: 命令行 warning D9035 :“o”选项已否决,并将在将来的版本中移除
libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertOpenStore@20
libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertCloseStore@8
libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertEnumCertificatesInStore@8
libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertFindCertificateInStore@24
libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertDuplicateCertificateContext@4
libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertFreeCertificateContext@4
libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertGetCertificateContextProperty@16
libssh2.dll : fatal error LNK1120: 7 个无法解析的外部命令

这个错误是因为openssl库使用了windows的一个密码学库: Crypt32

处理方法:在libssh2/win32/config.mk文件中添加crypt32.lib

 

再次编译即可

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值