引言

 用Qt写爬虫的时候,缺少openssl的动态库,试了几个已有的版本都不对,于是从官网下载了对应版本的源码自己编译。

准备

环境

 我的Qt原工程环境是,

  1. MinGW7.3.0-x64(gcc version 7.3.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project))
  2. Qt5.13.0

链接

 我这边Qt内的链接库是支持openssl1.1.1.b的,这属于一个老版本,
OpenSSL链接

过程

 源码下载下来,解压即可。
 查看README,

 它会让你去看对应平台的NOTES文件,我这边是windows下的mingw编译,就找到NOTES.WIN,
找到mingw编译的段落,

 我这边就是编出来windows上用,所以按照说明先按照msys2环境,msys2,下载安装了64位版本的。msys2是一个模拟的Linux命令行开发环境。msys2里本身就带了mingw,但是保险起见,上面段落也提到,最好用自己开发环境的mingw。所以需要把你自己环境下的mingw导入到msys2中。这边只需要要在你windows系统变量中创建一个 Windows 环境变量 MSYS2_PATH_TYPE=inherit,msys2就会继承win系统的环境变量,去找寻win下已经配置好的mingw工具(需要重启shell窗口)。msys2命令行中输入gcc,没有提示找不到文件就说明成功了。
 msys2中的home可以看作是你自己一个自由使用的目录(它里面没有太多系统或者其它的东西),这边建议你把openssl源码工程移到/home下(当然其他目录也行)。

 此时,你可以在msys2下使用自己的mingw了(使用命令名依你的mingw32-make.exe名字而定),但是此时在openssl工程目录下使用./configure mingw64配置编译,会提示缺少perl。

 /usr/bin/perl:bad interpreter:No such file or directory

 如果你从网上随便下载一个perl,然后msys2引用它,再配置,会发现报错,缺少dmake等等。工程目录下的NOTES.PERL中有说明,

严格要求perl与构建环境相匹配,所以简单说,就是要用msys2的软件包工具安装perl。
输入pacman -S perl 进行安装,

因为资源问题,下载过程中,有些链接可能下载过慢,会被判定为连接不上,而下载失败。这时候多试几次,或者连上VPN试几次。直到下载安装成功。

 安装成功后,再进入openssl目录下make,一般就会成功了(但是,可能你的工具路径中会有不符合unix风格的命名,比如Program files,这里Program和file之间有个空格,这种命名在上面的perl中似乎是不允许的,也会报错,你需要把提示路径改变成符合unix风格的路径,处理完这种情况后,一般就会编译正确)。
Note:
总的来说,要注意的就是,

  1. perl版本要与环境相匹配
  2. perl涉及的文件(包括调用时用到的工具)路径必须是unix风格的

最后按照正常的工程构建步骤,./configure mingw64,make就成功了。

总结

 编译一定要按照工程文档中说的来,坑很多。

MinGW64编译OpenSSL相关推荐

  1. windows下MinGW编译openssl库(64位、32位)图文解析

    环境:windows10 64位 工具链:MinGW64 IDE:CLion MinGW编译openssl 有两种方式获取到动态库: 一种是自己编译,编译源码 一种是在msys下安装openssl库的 ...

  2. 如何在Windows下编译OpenSSL?

     OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  3. bat脚本+vs2019编译openssl(x86 | x64) - (static | shared) - (debug | release)

    一.准备工作(perl, nasm, cygwin) 工作需要,我要以(x86 | x64) - (static | shared) - (debug | release)选项编译openssl,最终 ...

  4. Windows下编译openssl库

    1.概述 OpenSSL是一个开放源代码的软件库包,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,所以应用程序可以使用这个 ...

  5. 如何在Windows下编译OpenSSL

    OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人员而言 ...

  6. 【转】iOS编译OpenSSL静态库(使用脚本自动编译)

    原文网址:https://www.jianshu.com/p/651513cab181 本篇文章为大家推荐两个脚本,用来iOS系统下编译OpenSSL通用库,如果想了解编译具体过程,请参看<iO ...

  7. 在Windows下编译OpenSSL(VS2005)【转】

    如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器) 1.安装ActivePerl//初始化的时候,需要用到perl解释器 2.使用VS2005下的Visual Studi ...

  8. 64位Win7下用VS2010编译OpenSSL

    http://blog.csdn.net/henter/article/details/8364532 首先要说明,如果不想自己编译OpenSSL,可以到 http://slproweb.com/pr ...

  9. Windows 下编译 OpenSSL

    简述 OpenSSL 是一个开源的第三方库,它实现了 SSL(Secure SocketLayer)和 TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的 ...

最新文章

  1. eclipse 源码设置UTF-8 (eclipse可以为JSP HTML 等各种文件不同编码格式设置) 在windows - preference- general-workspace
  2. 2019年,人工智能要落地,更要小心被“摔死”
  3. 传输协议不安全,数据泄露谁之过?——流量劫持技术分析
  4. 收集一些常用的正则表达式
  5. Gunicorn 0.17 发布,Python HTTP 服务器
  6. java map去重复的数据_使用HashMap去重复数据.
  7. 跟着川川学数模-Day2
  8. [读码][js,css3]能感知鼠标方向的图片遮罩效果
  9. 去中心化数据库Bluzelle公布2021年路线图,将于2月3日上线主网
  10. 全球五十家知名传感器制造商分布盘点、特点分析
  11. 数电快速入门(三)(卡诺图化简法的介绍)
  12. [羊城杯 2020]A Piece Of Java
  13. Grafana-reporter定时报表
  14. oracle php 教程 pdf,AJAX+PHP+Oracle数据库Web开发 ((美)Lee Barney) 中文PDF扫描版 37.5M
  15. 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)
  16. 年会必备:18套年会快闪PPT
  17. 家里用服务器放在哪个位置,家用路由器放在什么位置比较合理?
  18. OpenMeetings安装
  19. 11_FreeRTOS时间片调度实验
  20. Python selenium新窗口和老窗口的切换

热门文章

  1. ICRA2020重磅来袭——SLAM文章汇总
  2. Caffe 在Windows 10下的安装
  3. T-SQL:一道医院信息科的面试题
  4. Spock测试框架如何Mock静态方法
  5. 晶圆切割机的新工艺研究
  6. webpack中常见loader的作用和使用方法
  7. 大话西游2服务器维护多长时间,大话西游2所有服务器的开区时间要#17
  8. JSTL标签库的使用
  9. 国产信创之路最扎实的一步——达梦数据库
  10. Nginx、LVS、Keepalived的关系