vs2019中实现SFTP连接 libssh2 1.10

公司MFC项目需要实现文件上传到SFTP服务器的功能,因此引入第三方库libssh2。

软件准备

libssh2下载地址

库版本libssh2 1.10.0,库版本要与windows SDK适配。

OpenSSL安装包下载地址

这里使用OpenSSL v3.2.1,根据需要安装 Win64 或者 Win32 版本。

编译环境:VS2019 , windows10 x64 

编译过程

1、解压libssh2-1.10.0.tar.gz,进入libssh2-1.10.0\win32,用VS2019运行libssh2.dsw。

2、将openssl头文件包含到项目中。

3、生成lib库。

 配置选择为openSSL LIB Debug ,平台为x86(64位软件选择x64)。

右键项目libssh2,生成lib库。

默认生成路径
1>libssh2.vcxproj -> XXXXX\XXXXXX\libssh2-1.10.0\win32\Debug_lib\libssh2d.lib

degug版本的lib库,名字一般多带一个“d”。

4、运行test

设置配置管理器。

报错  “/ZI”和“/Gy-”命令行选项不兼容,修改调试信息格式为“无”。

  配置选择为Debug ,平台为x86。

右键项目tests,生成exe可执行文件。

5、报错 无法打开文件“libeay32.lib”和"ssleay32.lib",需要编译1.x.x版本的openSSL 获得。

Windows 编译 openssl-1.0.2p(libeay32.lib、ssleay32.lib)静态库 32/64、debug/release、MT/MTd-腾讯云开发者社区-腾讯云 (tencent.com)


6、还需要zlib.lib。

windows下zlib库的编译与使用_zlib 静态编译-CSDN博客

7、报错 libeay32.lib 无法解析的外部符号 __imp__CertOpenStore@20,函数 _capi_open_store 中引用了该符号 。

询问GPT得知缺少了库“Crypt32.lib” 和“libcrypto.lib”。

用Everything搜索,路径如下

D:\Windows Kits\10\Lib\10.0.19041.0\um\x86\Crypt32.Lib。

C:\Program Files (x86)\OpenSSL-Win32\lib\VC\x86\MDd\libcrypto.lib

8、设置附加依赖项

依赖项中添加"Crypt32.Lib"和"libcrypto.lib"。

将"libssh2d.lib","libeay32.lib","ssleay32.lib","zlib.lib","Crypt32.Lib","Crypt32.Lib","libcrypto.lib"拷贝到项目根目录(libssh2.dsw所在目录)。

本地搭建SFTP服务器

Windows系统下的SFTP服务器搭建与公网访问 - 知乎 (zhihu.com)

文件上传下载

参考

使用libssh2建立安全的SSH连接:C++开发者的综合指南 - 知乎 (zhihu.com)

  • 13
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值