Qt 5.12.12 静态编译(MinGW)

news2024/11/25 13:29:42

前置准备

系统环境

版本	Windows 11 专业版
版本	22H2
安装日期	‎2023/‎6/‎18
操作系统版本	22621.2428
体验	Windows Feature Experience Pack 1000.22674.1000.0

依赖工具

gcc

Qt 5.12.12 安装 MinGW 后自动安装
https://download.qt.io/archive/qt/5.12/5.12.12/qt-opensource-windows-x86-5.12.12.exe
MinGW
gcc

Perl

https://www.perl.org/get.html​ 下载 Strawberry Perl,并安装
perl

Python

https://www.python.org/downloads/

python

Qt 源码(5.12.12)

https://download.qt.io/archive/qt/5.12/5.12.12/single/qt-everywhere-src-5.12.12.zipqt-source-code

开始编译

源码准备

将上述下载的 qt-everywhere-src-5.12.12.zip 源码解压至 D:\Qt\qt-everywhere-src-5.12.12 目录

生成编译文件

cd D:\Qt\qt-everywhere-src-5.12.12

configure.bat -static -release -platform win32-g++ -opensource -confirm-license -prefix "D:\Qt\Qt5.12.12\5.12.12\mingw73_64_static" -qt-zlib -qt-libpng -qt-webp -qt-libjpeg -qt-freetype  -no-opengl -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtlottie -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquick3d -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquicktimeline -skip qtremoteobjects -skip qtscript -skip qtsensors -skip qtspeech -skip qtsvg -skip qtwayland -skip qtwebglplugin -skip qtwebview -skip webengine -make libs -nomake tools -nomake examples -nomake tests

# 上述命令中 D:\Qt\Qt5.12.12\5.12.12\mingw73_64_static 为需要安装的目录

编译

mingw32-make -j16

# 使用 16 个线程编译

安装

mingw32-make install

make install

修改 conf 文件

修改安装目录下的 mkspecs\common\g++-win32.conf,例:D:\Qt\Qt5.12.12\5.12.12\mingw73_64_static\mkspecs\common\g++-win32.conf
g++-win32.conf

  • 新增 QMAKE_LFLAGS = -static
  • QMAKE_LFLAGS_DLL = -shared 修改为 QMAKE_LFLAGS_DLL = -static
    static

Qt Creator 配置

添加 Qt 版本

打开 工具 > 选项
选项
Kits 中选择 Qt Versions添加 刚才编译安装的 qmake
qmake

添加套件

Kits 选择一个套件(MinGW 64-bit)进行克隆
然后选择克隆后的套件,修改 Qt version 为刚才编译安装的版本
kits

测试

在项目中选择刚刚添加的套件,进行 build
build

编译结果
结果

参考

  • https://blog.51cto.com/DreamLife/5357055 Qt 静态编译(5.15.2 MinGW 32-bit)
  • https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW Building a static Qt for Windows using MinGW
  • https://tadeubento.com/2020/qt-static-builds-under-windows/ Qt: Static Builds Under Windows

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1093266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C/C++数据结构 - 2】:稳定性与优化揭秘,揭开插入排序、希尔排序和快速排序的神秘面纱!

文章目录 排序的稳定性插入排序插入排序的优化 希尔排序快速排序 排序的稳定性 稳定排序:排序前2个相等的数在序列中的前后位置顺序和排序后它们2个的前后位置顺序相同。(比如:冒泡、插入、基数、归并) 非稳定排序:排…

【Linux】自旋锁 以及 读者写者问题

自旋锁 以及 读者写者问题 一、自旋锁1、其他常见的各种锁2、自旋锁相关的API函数 二、读者写者问题1、读者与写者的关系2、读写锁的API函数3、用伪代码理解读写锁的原理4、读写锁的演示使用 一、自旋锁 1、其他常见的各种锁 悲观锁:在每次取数据时,总是…

Docker 构建Python镜像时,pip使用国内地址的dockerfile模版

一、问题现象 构建镜像时,使用pip命令打包报错: 二、问题根因 因国内无法访问pip的配置文件中的仓库地址 三、解决办法 这个办法同样适用于:物理机,这个地址是阿里云的 pip config set global.index-url http://mirrors.aliy…

<C++> IO流

C语言的输入与输出 在C语言当中,我们使用最频繁的输入输出方式就是scanf与printf: scanf: 从标准输入设备(键盘)读取数据,并将读取到的值存放到某一指定变量当中。printf: 将指定的数据输出到…

idea自动封装方法

例如 package com.utils;import java.lang.reflect.Field; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle;/*** author hrui* date 2023/10/13 13:49*/ public class DBUtils {private static ResourceBundle bund…

【网络编程】Linux网络编程基础与实战第二弹——Socket编程

Socket编程套接字概念套接字通讯原理 网络编程接口网络字节序sockaddr数据结构socket函数bind函数listen函数accept函数connect函数 ) Socket编程 套接字概念 Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为…

多机器人三角形编队的实现

文章目录 前言一、机器人编队前的准备二、配置仿真环境2.编写机器人编队.cpp文件 三、三角形编队测试 前言 前阵子一直想要实现多机器人编队,找到了很多开源的编队代码,经过好几天的思索,终于实现了在gazebo环境中的TB3三角形机器人编队。 一…

prostate数据集下载

1. prostatex 下载地址:https://wiki.cancerimagingarchive.net/pages/viewpage.action?pageId23691656 比赛:https://prostatex.grand-challenge.org/ 这个下载的是一个tcia文件,参考这篇文章打开该文件 2. promise12 地址:…

阿里健康大药房七周年峰会:两大变革叠加 风往何处吹

10月11日,2023数字医药产业论坛暨阿里健康大药房7周年活动在杭州举行。 作为一年一度的医药圈峰会,大会现场集聚了数百家全球知名医药健康企业、经济学者、学术智库等各界领袖、专家,针对健康行业新趋势、新技术、新场景分享产业见解和经验&…

Redis HyperLogLog的使用

Redis HyperLogLog知识总结 一、简介二、使用 一、简介 Redis HyperLogLog是一种数据结构,用于高效地计算基数(集合中唯一元素的数量)。它的主要作用是用于在内存中高效地存储和计算大量数据的基数,而无需完全存储所有的数据。Hy…

XMind思维导图软件forMac/win:让你的大脑更高效地运转

XMind 是一款非常实用的思维导图软件,它可以帮助用户更好地组织思维、提高工作效率。 您是否曾经遇到过这样的问题:在工作中需要处理大量的信息、任务和项目,但却又不知道该如何下手?这种情况很常见,但是,…

简单好用的解压缩软件:keka 中文 for mac

Keka是一款功能全面、易于使用的文件压缩和解压缩软件,为Mac用户提供了便捷的文件管理工具。它支持多种压缩格式,具有快速解压和强大的压缩功能,让您能够轻松地处理各种文件压缩需求。 隐私非常重要 安全共享只需设置密码并创建高度加密的文…

虚幻引擎:如何实现骨骼重定向

前言: 为什么需要做骨骼重定向,因为当前角色素材没有对应的动画,这时候我们可以找个身高体型差不多的带有动画素材的另一个角色来做重定向,这样我们就可以得到我们需要的动画素材了。 1.首先创建两个骨骼的IK绑定 2.然后给两个骨骼…

Java Kids-百倍提速【Mac IOS】

引言:当今社会,创新和提升效率已经成为了大家普遍的追求。无论是个人生活还是企业经营,我们都希望能够以更高的效率完成任务,节省时间和资源。因此,提速成为了一种时代的要求,而"Java Kids 百倍提速&q…

Hadoop3教程(四):HDFS的读写流程及节点距离计算

文章目录 (55)HDFS 写数据流程(56) 节点距离计算(57)机架感知(副本存储节点选择)(58)HDFS 读数据流程参考文献 (55)HDFS 写数据流程 …

SpringBoot+原生HTML+MySQL开发的电子病历系统源码

电子病历系统源码 电子病历编辑器源码 云端SaaS服务 电子病历系统,采用 “所见即所得、一体化方式”,协助医生和护士准确、标准、快捷实现病历书写、修改、审阅、打印、体温单浏览、医嘱管理等,是提供病历快速简洁化完成的一系列综合型医生病…

MyCat分片水平拆分

场景 在业务系统中 , 有一张表 ( 日志表 ), 业务系统每天都会产生大量的日志数据 , 单台服务器的数据存 储及处理能力是有限的 , 可以对数据库表进行拆分。 准备 准备三台服务器,具体的结构如下: 并且,在三台数据库服务器中分表创建一…

启山智软/JAVA商城

一、项目介绍 启山网上商城采用目前流行的JAVA spring cloud架构开发,前端使用的是目前最流行的TypeScript、VUE3、uniapp、element-plus、pinia技术,后端采用的是JAVA、SpringBoot、spring cloud技术,数据库采用的是MSQ,采用前后…

C语言----程序环境

目录 前言: 1.翻译环境 1.1预编译(预处理) 1.2编译 1.3汇编 1.4链接 2.运行环境 前言: 我们在用vs或一些其他的编译器写代码的时候,当我们运行代码的时候,很自然而然的就出结果了,但是它究竟是如何是如何实现的呢?因为这部分的内容是涉及到"编译原理"的,所以本章…

读书笔记——C++高性能编程(六)

第六章.并发和性能 阿姆达尔定律 介绍了阿姆达尔定律(Amdahls Law),这个定律的意义是“系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率”。具体的公式如下: 其中s0是程…