赞
踩
准备文件:
libssh2-1.8.0.tar.gz
Win32OpenSSL-1_1_1.exe
先去libssh2官网下载源码:https://www.libssh2.org
再去下载ssl编译好的库: http://slproweb.com/products/Win32OpenSSL.html
尝试了一下自己编译OpenSSL,太费劲。
libssh2基于ssl,先安装Win32OpenSSL-1_1_1.exe。
解压libssh2-1.8.0.tar.gz到随便一个地方,打开其win32目录中的libssh2.dsw,选择VS 2015。
打开后有个升级提示,顺其自然就行了。
OK了后,解决方案中有两个项目,libssh2和tests。
解决方案配置选择OpenSSL LIB Release。
打开libssh2项目的属性,
C/C++ -> 常规 -> 附加包含目录 -> 编辑并添加刚刚安装的OpenSSL根目录中的include目录。
库管理器 -> 常规 -> 附加库目录 -> 添加OpenSSL根目录中的lib\VC目录。
库管理器 -> 常规 -> 附加依赖项 -> 添加libcrypto32MT.lib和libssl32MT.lib。这两个必须在上面添加的目录中能找到。
C/C++ -> 代码生成 -> 运行库 -> 修改为多线程(MT)。上面添加的都是MT.lib。
Ctrl + F5
- 1>------ 已启动全部重新生成: 项目: libssh2, 配置: OpenSSL LIB Release Win32 ------
- 1> agent.c
- 1> channel.c
- 1> comp.c
- 1> crypt.c
- 1> global.c
- 1> hostkey.c
- 1> keepalive.c
- 1> kex.c
- 1> knownhost.c
- 1> mac.c
- 1> mbedtls.c
- 1> misc.c
- 1> openssl.c
- 1> packet.c
- 1> pem.c
- 1> publickey.c
- 1> scp.c
- 1> session.c
- 1> sftp.c
- 1> transport.c
- 1> 正在生成代码...
- 1> 正在编译...
- 1> userauth.c
- 1> version.c
- 1> wincng.c
- 1> 正在生成代码...
- 1>libssl32MT.lib(libssl-1_1.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR 已在 libcrypto32MT.lib(libcrypto-1_1.dll) 中定义;已忽略第二个定义
- 1>libssl32MT.lib(libssl-1_1.dll) : warning LNK4221: 此对象文件未定义任何之前未定义的公共符号,因此任何耗用此库的链接操作都不会使用此文件
- 1> libssh2.vcxproj -> D:\Desktop\libssh2-1.8.0\win32\.\Release_lib\libssh2.lib
- ========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
参考文章:
Windows VS2015 编译 libssh2 1.7.0 http://www.mycode.net.cn/language/cpp/1681.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。