QT静态编译程序(Mingw编译)

1. 为什么要静态编译程序?

在默认情况下,用QtCreator编译程序时,使用的是动态编译,这就导致编译好的程序在运行时需要另外加上相应的Qt库文件,以及一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,并且可以在一台没有开发环境的电脑上运行,那就需要使用静态编译。

2. 运行环境

Windows10
QT Creator 4.11.0
QT 5.14.0 + Python 3.6 + gcc 7.3.0 + perl 5.22.1

3. 实现步骤

(1)安装QT
QT5.14.0下载地址:http://download.qt.io/archive/qt/5.14/5.14.0/
选择图中所示版本下载
在这里插入图片描述
安装QT时,记得勾选“Sources”
在这里插入图片描述
(2)安装Perl
下载地址:https://www.perl.org/get.html
推荐下载Strawberry Perl,因为相比于ActiveState Perl,它不用注册就可以直接下载
安装目录:D:\SoftwareInstall\StrawberryPerl\perl
环境变量安装过程自动添加的,如果没有添加,手动添加:

D:\SoftwareInstall\StrawberryPerl\perl\site\bin
D:\SoftwareInstall\StrawberryPerl\perl\bin

(3)安装Python
安装过程记得勾选添加PATH环境变量
安装目录:D:\SoftwareInstall\Python3.6
环境变量安装过程自动添加的,如果没有添加,手动添加:

D:\SoftwareInstall\Python3.6\Scripts
D:\SoftwareInstall\Python3.6

(4)安装环境检查
打开QT 5.14.0(MinGW 7.3.0 32-bit)
在这里插入图片描述
输入以下命令检查gcc编译器配置是否正确

gcc -v

输入以下命令检查perl解释器配置是否正确

perl -v

输入以下命令检查python配置是否正确

python

输入exit()或者ctrl+z退出python

(5)配置静态比编译QT信息
在D:\SoftwareInstall\Qt5.14.0\5.14.0新建一个文件夹mingw73_32_static,用于存放编译后的文件
在这里插入图片描述
切换到QT的源码目录D:\SoftwareInstall\Qt5.14.0\5.14.0\Src
输入以下命令:

configure.bat  -static -release -confirm-license  -opensource -opengl desktop -platform win32-g++  -prefix "D:\SoftwareInstall\Qt5.14.0\5.14.0\mingw73_32_static" -sql-sqlite  -sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs  -nomake tools -nomake examples -nomake tests -skip qt3d  -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview

(6)开始编译(时间较长,大约3-4小时)
在第(5)步配置完毕并且没有输出错误信息时,即可开始编译,在刚才的命令行窗口输入以下命令进行编译:

mingw32-make

若电脑性能较好,可以使用多线程进行编译:

mingw32-make -j2

ps:这里使用的是2个线程

(7)安装
在编译完成后,在刚才的命令行窗口输入以下命令进行安装:

mingw32-make install

安装完成后,便可以在mingw73_32_static中,看到如下内容:
在这里插入图片描述

(8)相关配置
修改D:\SoftwareInstall\Qt5.14.0\5.14.0\mingw73_32_static\mkspecs\common\g+±win32.conf
在conf文件中新增QMAKE_LFLAGS = -static
在conf文件中修改QMAKE_LFLAGS_DLL = -static
在这里插入图片描述
(9)QT Creator中配置静态编译器
工具->选项
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
克隆一个原来的,并修改以下标红框的选项
在这里插入图片描述

### 使用 MinGW 进行 Qt 静态编译 #### 准备工作 为了成功完成Qt静态编译,需先解压Qt源码至指定位置。例如,在D盘创建`qt-everywhere-src-5.15.2`用于放置源代码文件[^3]。 #### 创建构建目录 建议在磁盘根目录建立专门的文件夹来存储编译过程中产生的临时数据以及最后生成的目标文件。比如可以命名为`Qt5.15.2BuildMinGW`(作为中间产物存放处) 和 `Qt5.15.2StaticMinGW`(保存最终成果)。 #### 设置环境变量 通过命令提示符窗口调整系统的路径设置以包含所使用的工具链的位置。对于特定版本的MinGW而言,这一步骤可通过如下指令实现: ```bash set PATH=C:\x86_64-8.1.0-release-posix-seh-rt_v6-rev0\mingw64\bin;%PATH% ``` 此操作确保了后续调用GCC等相关组件时不遇到找不到命令的问题。 #### 编译前验证 启动Qt Creator IDE并加载目标项目之前,应该确认当前环境中已正确定位到了所需的GNU Compiler Collection (GCC) 版本。可以通过运行下面这条简单的测试语句来进行快速检验: ```bash gcc -v ``` 当终端返回详细的编译器信息而非错误消息时,则表明一切准备就绪[^4]。 #### 开始编译流程 一旦上述准备工作全部完成后,就可以着手于实际的编译过程了。具体来说就是依次执行以下几步动作: - 导入预设好的批处理脚本来初始化必要的内部参数; - 利用qmake工具读取项目的`.pro`配置描述文档,并据此生成适合本地平台特性的Makefile; - 清理旧有的残留物并通过`nmake`或`mingw32-make`重新制造新的二进制输出。 这些步骤可以在命令行界面里连续输入下列几条命令来达成目的(假设已经位于待编译工程所在的子目录内): ```batch call qtvars.bat qmake CONFIG+=static QMAKE_LFLAGS+=/SUBSYSTEM:WINDOWS,5.01 mingw32-make clean && mingw32-make sub-src module-qtbase ``` 这里特别需要注意的是,在调用qmake的时候要加上`CONFIG+=static`选项以便指示它按照静态链接的方式进行组装;而`QMAKE_LFLAGS+=/SUBSYSTEM:WINDOWS,5.01`则是为了让应用程序能够在更广泛的Windows操作系统上正常运作[^5]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值