已编译好的资源: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
再次编译即可
本文介绍了如何在VS2013环境下编译libssh2 1.8.0库,包括下载资源、配置zlib和openssl、解决编译过程中的问题,特别是针对openssl库链接错误的解决方法。
1549

被折叠的 条评论
为什么被折叠?



