环境:windows10 64位
工具链:MinGW64
IDE:CLion

MinGW编译openssl 有两种方式获取到动态库:

  • 一种是自己编译,编译源码
  • 一种是在msys下安装openssl库的时候将里面的动态库拿出来,点击跳转

本篇文章主要讲解的是MinGW编译openssl的方法,如果是MSVC编译openssl可以参考我同学的文章

MSVC编译openssl
参考:https://blog.csdn.net/qq_39311335/article/details/116919598

下载安装msys2

推荐使用清华的镜像网站下载,速度快。
官网网址(不推荐):https://www.msys2.org
清华镜像(推荐):https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/
下面我是使用清华的镜像下载截图。
选择一个版本下载,我选择的是20220503的版本。

更改msys2的下载源

刚下载的msys2使用的默认源在国外,所以下载东西非常慢,需要自己更改成国内的源

  1. 打开安装目录下的\etc\pacman.d可以看到下图中红框中的三个文件
  2. 修改mirrorlist.msys
    用记事本打开mirrorlist.msys,在文本的最上面加上这句代码
 Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
  1. 修改mirrorlist.mingw32
    同理使用记事本打开,在最上面增加
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
  1. 修改mirrorlist.mingw64
    同理在最上面增加
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
  1. 在安装路径下找到msys.exe打开,执行下面指令更新
pacman -Syu

在环境包中找openssl动态库

  1. 打开msys2的安装路径,

  2. 安装mingw所需的包
    如果是要64位动态库,在mingw64.exe执行下面指令

pacman -S mingw-w64-x86_64-pkgconf

如果是要32位动态库,在mingw32.exe执行下面指令

pacman -S mingw-w64-i686-pkgconf
  1. 查找动态库
  • 64位动态库:在mingw64\bin下找libcrypto-1_1.dll和libssl-1_1.dll
  • 32位动态库:在mingw32\bin下找libcrypto-1_1.dll和libssl-1_1.dll

编译源码

配置msys2的MinGW环境

这取决于你要编译几位的OpenSSL,如果你要编译32位的就安装mingw32位的环境 即可。二者步骤一致只是指令不同,下面我用32位的记录。

  1. 在安装目录下打开mingw32.exe。(64位的就打开mingw64.exe
  2. 打开后先用pacman -Syu指令,更新一下下载列表(防止还是用旧的源)
  3. 下载C++编译所需文件。
位数 指令 exe
64位 pacman -S mingw-w64-x86_64-toolchain 在mingw64.exe下打开输入的指令
32位 pacman -S mingw-w64-i686-toolchain 在mingw32.exe下打开输入的指令

这里我是安装mingw32的环境(mingw64也是差不多),编译openssl只需要下图的 3(mingw的gcc) 和 15(mingw的make) 即可

5. 安装gccmake(此处mingw64和mingw32一致)
安装gcc

pacman -S gcc

安装make

pacman -S gcc

下载OpenSSL源码

  1. 下载路径:https://github.com/openssl/openssl
  2. 下载源码后将源码解压到 msys\home\用户名
    如下图所示,我将解压的openssl-1.1.1o的文件夹放到了home下的用户文件夹中

编译源码生成动态库

  1. 打开mingw32.exe(如果要编译64位就打开ming64.exe
  2. 进入openssl的文件夹
cd openssl-1.1.1o/
  1. 配置编译环境
./config -shared

解释: -shared表示生成动态库

  1. 编译(等待个几分钟)
make

编译过程中会有很多警告,无视即可,然后在\openssl-1.1.1o\test就能找到两个动态库(libcrypto-1_1.dll和libssl-1_1.dll

windows下MinGW编译openssl库(64位、32位)图文解析相关推荐

  1. Windows下MinGW编译vim7.4

    学习了一段时间Vim,感觉有些功能真的很方便.因学习原因,工作平台更换到一台老式Xp电脑上,重新安装了Vim7.4.官网默认版本不支持等宽字体和GDI++渲染,需要手工编译一个修改过的版本. 1.下载 ...

  2. windows 下 vs2008 编译 OpenCV 库

    1. 下载  opencv-2.4.9.exe 下面地址可以用迅雷: http://downloads.sourceforge.net/project/opencvlibrary/opencv-win ...

  3. boost——windows下VS2013update5编译boost库

    下载boost库 从http://www.boost.org上下载到目前最新的boost库 注意,现在最新版的需要编译器支持C++14,可以用VS2013 update5,或者下载最新版的VS2017 ...

  4. Windows编程-判断一个程序是64还是32位的小程序

    //编写一个判断进程是否位64位程序的函数 typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCES ...

  5. Boost在Linux和windows下的编译 32位 64位

    一 简言 1. Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一 2. Boost官网地址:http://www.boost.org/ 3. 本博客示 ...

  6. Windows10+VS2017下安装和 编译openssl库

    windows10+VS2017下安装和编译openssl库 环境 windows10,64位 openssl解压目录:E:\mylib\openssl-1.0.2l openssl安装目录:E:\m ...

  7. Windows环境VS2017编译skia库-m84,亲测成功,使用官方编译的方法

    环境准备 Windows7/10电脑需要能访问https://skia.org/和https://skia.googlesource.com/skia.git 在Windows上安装Visual St ...

  8. tinyxml在linux和windows下的编译及使用详解

    一:摘要 1.XML全称EXtensible Markup Language,翻译为可扩展标记语言,XML文件通常就是一个文本文件,可以使用任何编码 2.TinyXML是一个开源的C++用来处理XML ...

  9. jsoncpp在linux和windows下的编译及使用详解

    一:摘要 1. JSON是一种轻量级的数据传输格式,全称为:JavaScript Object Notation,官方网址: http://www.json.org/json-zh.html 3. J ...

最新文章

  1. Pycharm报错合集:在pycharm运行anaconda配置的Pytorch环境报错(Environment location diretory is not empty )
  2. #大学#SQL基础学习笔记(02)
  3. Cortex-M3启动深度解析
  4. oracle动态注册和静态注册监听器
  5. IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR
  6. java aop execution_Spring AOP -- execution表达式
  7. 前端学习(2754):配置tabber
  8. vs Obsolete标识符
  9. PAT甲级1004 (DFS,树的父子节点)
  10. 浙江大华 研发类试题
  11. 桃养人,杏害人,樱桃树下埋死人
  12. 研究学习时用到的软件
  13. ibm服务器查看刀片状态,IBM刀片服务器 blade center s常见问答
  14. date类型被fastjson变为long类型一串数字
  15. 第3章【思考与练习4】数据清洗,从studentsInfo.xlsx 文件的“Group1”表单中读取数据。数据填充,使用习题1的数据,使用列的平均值填充“体重”和“成绩”列的NaN数据。
  16. 什么是B2B、B2C、C2C?
  17. 论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
  18. 使用CYUSB3014实现SPIFlash读写擦除控制
  19. 【华为诺亚方舟实验室】2021届毕业生招聘
  20. iMX6ULL启动流程

热门文章

  1. 投资理财-温暖人心Lemon
  2. Final Cut Pro X 10.5.1苹果视频剪辑软件英/中文TNT版安装教程(附带dmg安装包)
  3. linux文件打包发给别人,Linux 文件打包与解压缩
  4. 通过nodeJS如何实现爬虫功能
  5. 【程序员交友】阿韦:文武双全的80后
  6. 苹果7手机严重卡顿_电竞职业选手游戏手机推荐,最受欢迎是苹果7
  7. Windows内核开发之串口过滤
  8. mac python2找不到,无法使用brew安装 问题解决方案
  9. VC做无锯齿的不规则窗体
  10. OJ 1354 Problem G STL——水果店