Windows下编译curl+openssl

项目背景:
       在项目开发过程中,因涉及到网络数据通讯,故用到了curl+openssl。在官网上下载了curl和openssl后分别进行了编译,编译完成后经测试无异常,但随着项目的发布,用户量激增,出现了https通信失败的问题,问题现象为:在多数电脑上使用http或者https进行通信均无异常,但在个别电脑上http通信无异常但https通讯失败;根据问题现象,初步判定是curl编译时未配置支持openssl导致的,故重新进行了编译,编译curl时实现了对openssl的支持(编译指令/参数为:WITH_SSL=<dll/static>);完成编译后重新进行了测试,https通信失败的问题得到了解决;

编译过程:

      1、在官网(https://curl.se/download.html)下载curl,如下图所示:

       2、在官网(/index.html)下载openssl,如下图所示:

      3、 在官网(Strawberry Perl for Windows)下载Perl,下载这个工具需要很长时间,这会儿可以阅读下openssl中的INSTALL.md和README.md文件。下载了很久,最终还是失败了,迫于无奈使用"魔戒"进行下载,果然速度提上来了,仅几秒钟就下载完了;如下图所示:

     4、 在官网(Index of /pub/nasm/releasebuilds/2.16.01/win64)下载nasm,如下图所示:

     5、解压下载的压缩包openssl-3.2.0.tar.gz、curl-8.5.0.zip,并安装PerL和nasm,这个比较简单就是运行起来点击下一步就行,安装完成后Perl会自动添加到环境变量中,而nasm则需要手动添加至环境变量中,如下图所示:

     6、如果电脑上没有VS的话,下载、安装VS进行编译要简单些,本机中已安装了VS2013;

     7、这时候就可以开始Openssl的编译了;
          ①以管理员身份打开“VS2013 x64 本机工具命令提示”;
          ②cd到openssl目录下;例如:cd C:\Users\yjk\Downloads\openssl-3.2.0
          ③使用Perl配置OpenSSL; 例如:perl Configure VC-WIN64A --prefix=D:\CURL\openssl_lib
          ④输入“nmake”命令开始编译;
          ⑤编译过程中报错:无法解析的外部符号 snprintf,该符号在函数 http_server_init 中 被引    用;
          ⑥重新下载了openssl-1.1.1v版本的openssl,重新进行编译,未报错;
          ⑦输入"nmake test"指令进行测试,测试通过;
          ⑧输入"nmake install"指令进行安装,安装完成;
          ⑨进入到输出目录“cd /d D:\CURL\openssl_lib\bin”,输入指令查看版本号 "openssl                version",自此openssl编译结束;
          ⑩openssl编译完成后,"VS2013 x64 本机工具命令提示"窗口不要关闭,继续编译curl;

     8、完成了openssl编译后开始编译crul
           ①cd到curl目录下;例如:cd /d C:\Users\yjk\Downloads\curl-8.5.0\winbuild;
           ②输入指令:”nmake /f Makefile.vc mode=dll VC=12 WITH_DEVEL=D:\CURL\openssl_lib WITH_SLL=dll“,开始编译,这个编译很快不到一分钟就编译完成了;
           ③编译完成后自动输出到"C:\Users\yjk\Downloads\curl-8.5.0\builds\libcurl-vc12-x64-release-dll-ipv6-sspi-schannel"文件夹中;
           ④注意事项:关于curl编译流程和编译指令的介绍在winbuild文件夹下的"README.md"文档中,文档介绍的很详细;“VC=12”指令参数可以在网上查相应的VS和VC的对照表;
     9、至此curl+openssl编译完成,可将编译好的opessl库文件拷贝至curl编译输出目录进行测试,输入指令"curl.exe https://www.baidu.com --insecure"测试是否支持https;如图所示:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值