VS 2015编译libssh2

准备文件:

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

发布了31 篇原创文章 · 获赞 11 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/MrRight17/article/details/84190375