当前位置: 首页 > news >正文

windows上Qt5.15+openssl1.1.1+msvs2022静态编译32位版本的笔记

本次编译采用的是vs2019社区版。

OPENSLL下载地址
参考这位大佬
大佬的有些问题,本篇已经修改

Openssl编译,qt5.15要求1.1.1的版本,这里下载的版本是1.1.1m的源码。

编译步骤:

(1)安装ActivePerl需要版本5.28.1, 下载地址百度,安装perl成功后,在命令行里输入perl -v,可看到版本提示即可。

(2)安装vs2019后(或其他版本的)在开始程序菜单中单击 X86 Native Tools Command Prompt for VS 2019,打开命令提示符

(3)解压openssl源码,然后cd到源码目录下执行: perl configure no-shared VC-WIN32 no-asm --prefix=”D:\openssl\1.1.1g”

其中D:\openssl\1.1.1g表示最终安装的目录。

(4)编译nmake

(5)编译后安装 nmake install

然后到 D:\openssl\1.1.1g 目录下找到编译后的lib库。这个目录应包括include, lib, bin三个子目录。

Qt5.15.2编译,含静态链接openssl

(1)安装ActivePerl,如已经安装则忽略此

(2)安装vs2019后(或其他版本的)在开始程序菜单中单击 X86 Native Tools Command Prompt for VS 2019,打开命令提示符

(3)解压qt5.15.2的源码,然后cd到源码目录下执行:(D:/qt5.15.2/msvc2019-win32-static为最终安装目录)
configure.bat -static -prefix “D:/qt5.15.2/msvc2019-win32-static” -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake tools -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -mp OPENSSL_PREFIX=D:/openssl/1.1.1m OPENSSL_LIBS=”-llibcrypto -llibssl -lgdi32 -lWs2_32 -lwsock32 -ladvapi32 -luser32 -lcrypt32″ -openssl-linked -static-runtime -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview

静态链接openssl的重点是:-openssl-linked。其中OPENSSL_PREFIX=D:/openssl/1.1.1m指向我们前面编译好的openssl静态库主目录。

(4)编译,安装jom后多线程编译jom -j 4

jom下载:https://iso.mirrors.ustc.edu.cn/qtproject/official_releases/jom/jom_1_1_3.zip

(5)编译后安装jom install

漫长的等待,完成!

将qt5.15.2加入到QtCreator

(1)点击菜单 工具 => 选项: Kits => Qt Version,添加我们编辑的版本,选择qmake.exe即可。

(2)构建套件 中添加一个。 名称可以取Desktop Qt %{Qt:Version} MSVC2022 32Bit Static

编译器选择 Microsoft Visual C++ Compiler 17.0… .(x86) 注意选这个x86的,因为我们编译的是32位。

我编译程序提示少头文件,于是我在Environment里面加入了:

INCLUDE=${INCLUDE};C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt

LIB=${LIB};C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x86

最后Qt版本选择我们刚加的,保存即可。

安装遇到一些问题,默认路径在c盘没有权限创建文件夹,根据帮助文档OPENSLL目录下的 INSTALL文档得知可以修改makefile (第一步配置完成后就会生成makefile)
OPENSSLDIR_dev=D: //原来是C盘,改为D盘
OPENSSLDIR_dir=\Program Files (x86)\Common Files\SSL

我是用在qt 中所以–prefix配置的自定义安装路径为D:\Qt\5.15.2\msvc2019,这样安装完成后就可以使用了,不用手动拷贝include lib dll

注:shared表示编译动态库,no-shared表示编译静态库;no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程;–prefix 指定生成lib include bin目录的路径,不修改此项则默认为OPENSSLDIR目录
如果需要使用 asm,则需要安装dmake工具并且配置(我没有用过)

相关文章:

  • CentOS系统下,配制nginx访问favicon.ico
  • 1-十四烷基-3-甲基咪唑六氟磷酸盐([C14MIm][PF6])修饰纳米SiO2二氧化硅(mg级瓶装)
  • stm32f4xx-定时器
  • (过滤器)Filter和(监听器)listener
  • Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?
  • Vue项目流程7,交易页面,提交订单,支付页面,利用element UI 以及 QRCode 完成微信支付,弹出框按钮的相关工作,个人中心以及子路由我的订单
  • 在Java中使用SFTP传输文件
  • OC5860降压芯片,MPS2459脚位一样,节省肖特基规格书
  • 哈工大李治军老师操作系统笔记【4】:系统调用的实现(Learning OS Concepts By Coding Them !)
  • 【光学】基于matlab色散曲线拟合【含Matlab源码 2053期】
  • (多级缓存)多级缓存
  • 复习三:线性表
  • C/C++语言100题练习计划 87——火柴棒等式(枚举实现)
  • 数仓架构演进
  • 约瑟夫问题对应算法的实现(思路分析) [Java][数据结构]
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [LeetCode] Wiggle Sort
  • 【css3】浏览器内核及其兼容性
  • 5、React组件事件详解
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Android组件 - 收藏集 - 掘金
  • E-HPC支持多队列管理和自动伸缩
  • emacs初体验
  • Fundebug计费标准解释:事件数是如何定义的?
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JAVA多线程机制解析-volatilesynchronized
  • Terraform入门 - 1. 安装Terraform
  • Terraform入门 - 3. 变更基础设施
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • web标准化(下)
  • 技术胖1-4季视频复习— (看视频笔记)
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​人工智能书单(数学基础篇)
  • #define与typedef区别
  • (二十四)Flask之flask-session组件
  • (九)One-Wire总线-DS18B20
  • (七)理解angular中的module和injector,即依赖注入
  • (转载)Linux网络编程入门
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • [145] 二叉树的后序遍历 js
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C#]winform部署PaddleOCRV3推理模型