从官网 https://www.libssh2.org/snapshots/ 下载最新版本的源码包
解压
用 VS2017 打开 libssh2\win32\libssh2.dsw
(其实你可以用任何版本)。
升级完成后,项目成功加载,里面有两个工程,一个是 libssh2,一个是 tests。tests 是一个测试的项目,libssh2是我们需要编译的库项目。
打开 libssh2 的属性管理器,可以看到该项目被官方配置好了已经有很多编译方式:
根据需要可自己编译各类版本。
以OpenSSL DLL Debug为例
依赖于OpenSSL 库,可参考:#Windows库编译# OpenSSL 。
https://blog.csdn.net/xiaoting451292510/article/details/89458969
依赖于zlib库,可参考:#Windows库编译# zlib。
https://blog.csdn.net/xiaoting451292510/article/details/89384999
选择OpenSSL DLL Debug,编辑该项目属性,在 C/C++ -> 常规 -> 附加包含目录
中,添加 OpenSSL 的 include 路径 C:\Program Files (x86)\OpenSSL-Win32\include
,如下图:
接下来,添加 OpenSSL 的库路径和库文件到项目中。
- 选择项目属性中的
库管理器 -> 常规 -> 附加库目录
,添加 OpenSSL 的 Lib 库路径C:\Program Files (x86)\OpenSSL-Win32\lib\VC
- 选择项目属性中的
库管理器 -> 常规 -> 附加依赖库
,添加 OpenSSL 的 Lib 文件libssl32MDd.lib
libcrypto32MDd.lib
libeay32.lib 和 ssleay32.lib 分好多个版本,有 MD、MDd、MT、MTd 等,我们到底要选择哪个那?这要取决你编译这个库要使用的 运行库
。选择该项目属性中的 C/C++ -> 代码生成 -> 运行库
,根据你要调用 libssh2 的项目属性。详细可参考: #visual studio# 运行库MT、MTd、MD、MDd
https://blog.csdn.net/xiaoting451292510/article/details/89385839
编译过程中提示以下错误,可参考
#visual studio编译# Error D8016 '/ZI' and '/Gy-' command-line options are incompatible
https://blog.csdn.net/xiaoting451292510/article/details/89459669
各模式下编译。生成的dll和lib文件可在相应的文件夹中找到。
Windows库编译下载地址:https://gitee.com/arvinxt/window-library