从官网 https://www.libssh2.org/snapshots/ 下载最新版本的源码包

解压

用 VS2017 打开 libssh2\win32\libssh2.dsw(其实你可以用任何版本)。


升级完成后,项目成功加载,里面有两个工程,一个是 libssh2,一个是 tests。tests 是一个测试的项目,libssh2是我们需要编译的库项目。

打开 libssh2 的属性管理器,可以看到该项目被官方配置好了已经有很多编译方式:
根据需要可自己编译各类版本。

以OpenSSL DLL Debug为例
依赖于OpenSSL 库,可参考:#Windows库编译# OpenSSL 。
https://blog.youkuaiyun.com/xiaoting451292510/article/details/89458969
依赖于zlib库,可参考:#Windows库编译# zlib。
https://blog.youkuaiyun.com/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.liblibcrypto32MDd.lib
libeay32.lib 和 ssleay32.lib 分好多个版本,有 MD、MDd、MT、MTd 等,我们到底要选择哪个那?这要取决你编译这个库要使用的 运行库。选择该项目属性中的 C/C++ -> 代码生成 -> 运行库,根据你要调用 libssh2 的项目属性。详细可参考: #visual studio# 运行库MT、MTd、MD、MDd
https://blog.youkuaiyun.com/xiaoting451292510/article/details/89385839



编译过程中提示以下错误,可参考
#visual studio编译# Error D8016 '/ZI' and '/Gy-' command-line options are incompatible
https://blog.youkuaiyun.com/xiaoting451292510/article/details/89459669

各模式下编译。生成的dll和lib文件可在相应的文件夹中找到。

Windows库编译下载地址:https://gitee.com/arvinxt/window-library
本文详细介绍如何在Visual Studio 2017中编译libssh2库,包括下载源码、配置环境、解决常见错误及生成不同模式的DLL和LIB文件的过程。

440





