【windows平台编译libcurl (zlib+openssl)】

windows平台编译libcurl (zlib+openssl)

1.环境:vs2022(作者的安装环境,vs环境根据自己安装版本而定)。
2.开源库下载:
zlib库 http://www.zlib.net/ 最新版本就可以(作者下载版本2.13.0);
openssl库 https://www.openssl.org/source/ 根据需求下载版本(作者下载版本1.1.1);
libcurl库 https://curl.se/download.html 根据需求下载版本 (为了项目的兼容性,作者使用版本7.58.0)。
3.开源库编译:
3.1zlib编译:zlib解压后进入zlib-1.2.13\contrib\vstudio\vc14路径,启动zlibvc.sln
选中zlibvc使用默认选项
在这里插入图片描述
编译时选择x64,Release开始生成。
在这里插入图片描述
进入zlib-1.2.13\contrib\vstudio\vc14\x64\ZlibDllRelease目录拿到zlibwapi.lib和zlibwapi.dll文件。
为下一部openssl编译库准备导入文件和lib库目录(当前zlib相应文件),新建zlib文件夹,在zlib里面建include和bin目录。
include文件夹将zlib-1.2.13开源库里的zlib.h和zconf.h放入;bin文件夹里放入刚才编译出的zlibwapi.lib和 zlibwapi.dll文件。
3.2 openssl库编译:
3.2.1准备环境:
openssl-1.1.1解压进入目录,阅读以下INSTALL 和 NOTES.WIN 这两个文件,要求安装activePerl 和 nasm
activePerl下载地址 https://www.activestate.com/products/perl/;(也可以通过其他方式下载,官网下载有点小啰嗦)
nasm 下载地址 https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
使用管理员权限安装activePerl时会自动设置系统环境变量,nasm安装后可能需要手动添加系统环境变量(作者是手动设置path)。
3.2.2开始编译:
打开vs的命令行工具,根据需求使用x86还是x64工具,作者使用x64工具编译(开始菜单->visual studio 2022文件夹点击显示里面的工具列表)。
在这里插入图片描述
cd 进入 openssl-1.1.1解压后目录(windows命令cd后有可能还在源目录,记得要切换根目录比如d盘d:)
执行编译配置命令 perl Configure VC-WIN64A --prefix=xxx\zlib --with-zlib-include=xxx\zlib\include --with-zlib-lib=xxx\zlib\bin\zlibwapi.lib zlib-dynamic
备注:VC-WIN64A 是64位版本编译; zlib-dynamic 是使用zlib的动态库,如果使用静态库 zlib。
后执行nmake命令,开始编译(执行时间会有点久)
编译完成在openssl-1.1.1解压后目录 里会生成相应的库:
在这里插入图片描述
准备libcurl库编译资料,将本次编译的dll和lib资料收集,新建deps文件夹,在里面新建include,lib,bin文件夹。
将openssl-1.1.1\include里的内容放入新建的include里,将libssl.lib和libcrypto.lib放入新建的lib里,将libssl-1_1-x64.dll和libcrypto-1_1-x64.dll放入新建的bin里。并将zlib的库文件和头文件也分别放入deps下的include(.h文件),lib(.lib文件),bin(.dll文件)文件夹里。
3.3libcurl库编译:
进入解压后curl库目录,作者使用7.58.0版本(作者文件路径curl-curl-7_58_0),进入winbuild。
打开BUILD.WINDOWS.txt仔细阅读,会告诉你编译规则,
将deps文件夹放到与curl路径平行目录(或者通过WITH_DEVEL设置目录)

在这里插入图片描述
继续使用vs工具命令,先进入curl-curl-7_58_0/winbuild 路径,执行编译命令:
nmake /f Makefile.vc mode=dll VC=15 WITH_SSL=dll WITH_ZLIB=dll MACHINE=x64
编译完成在builds目录生成相应的文件
在这里插入图片描述
在bin目录会有libcurl.dll和curl.exe
将相关dll copy到当前目录,可以curl.exe https://www.baidu.com --insecure 验证:
在这里插入图片描述

  --insecure是为了跳过证书验证,证书验证可以去CURL官网下载cacert.pem。
   至此可以提取libcurl.lib 和libcurl.dll 跟相关联dll去使用了。

4.参考资料:
https://blog.csdn.net/xys206006/article/details/102593075
https://blog.csdn.net/Sakuya__/article/details/113246127

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值