Qt for Windows:Qt 5.11.2 MinGW 静态编译


        本文结合其它关于静态编译博客的总结及Qt5.11.2使用经验,将讲述Qt5.11.2与Qt5.8.0静态编译的部分区别,以及如何运用Qt5.11.2在Windows系统中,制作出一键静态编译的Qt应用程序,使程序实现不依赖于系统Qt库运行。

    • 环境
    • 1. 安装
    • 2. 检查
    • 3. 静态编译qmake
    • 4. 生成exe文件
    • 参考资料

环境

系统:Windows 10 64位 家庭中文版
Qt版本:Qt 5.11.2 for Windows 32bit
Python版本:Python 3.6.4



1. 安装

1.1 安装Qt
下载地址: http://download.qt.io/archive/qt/5.11/5.11.2/
qt-opensource-windows-x86-5.11.2.exe
注:安装时勾选Strawberry Perl可以跳过安装 Perl。
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第1张图片
1.2 安装Perl
安装Perl, 下载地址: https://www.activestate.com/activeperl/downloads
1.3 安装Python
下载地址: https://www.python.org/downloads/
Windows x86 executable installer
配置环境变量(根据自己Python安装路径修改),手动添加:

D:\Python36
D:\Python36\Scripts\



2. 检查

2.1打开Qt 5.11.2 for Desktop (MinGW 5.3.0 32 bit)

Win 10 搜索MinGW:
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第2张图片

2.2 输入以下命令检查gcc编译器配置

gcc -v

2.3 输入以下命令检查perl解释器配置

perl -v

2.4 输入以下命令检查python配置

python

按Ctrl + Z,Enter ,退出python


3. 静态编译qmake

3.1 静态编译配置

在路径D:\Qt\Qt5.11.2\5.11.2下,新建文件夹mingw53_32_static:
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第3张图片

在Qt 5.11.2 for Desktop (MinGW 5.3.0 32 bit)切换到Qt的 源码目录

cd D:\Qt\Qt5.11.2\5.11.2\Src

运行命令(引号内修改为自己的安装目录):

configure.bat -confirm-license -opensource -platform win32-g++ -mp -debug-and-release -static -prefix “D:\Qt\Qt5.11.2\5.11.2\mingw53_32_static” -qt-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d

注:这里配置的时候,跳过了qtwebengine、qtwebview、qt3d,如果需要这些模块可以去掉skip。

*关于configure.bat:configure.bat介绍及参数用法

3.2 编译(大概需要6小时左右)

mingw32-make -j2

注:本处为2个线程编译,电脑好的可以开更多的线程,编译速度也更快。

3.3 安装(需要30分钟左右)

mingw32-make install

3.4 新增静态编译

5.8.0版本: 打开Qt Creator -> 工具 -> 选项 -> 构建和运行 -> Qt Versions

5.11.2版本: 打开Qt Creator -> 工具 -> 选项 -> 构建和运行 -> Kits

添加版本后,点击应用:Qt for Windows:Qt 5.11.2 MinGW 静态编译_第4张图片

构建套件:选择刚才添加的版本,修改选项,点击应用(注意Qt版本一定要记得选对):
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第5张图片

3.5 配置编译器

5.8.0版本:

记事本打开D:\ProgramFiles\Qt\Qt580\5.8\mingw53_32_static\mkspecs\win32-g++\qmake.conf,

添加 一行QMAKE_LFLAGS = -static,修改 QMAKE_LFLAGS_DLL其值为-static。

5.11.2版本:

(1)D:\Qt\Qt5.11.2\5.11.2\mingw53_32_static\mkspecs\common\gcc-base.conf,

QMAKE_LFLAGS 由空白改为 -static;

(2)D:\Qt\Qt5.11.2\5.11.2\mingw53_32_static\mkspecs\common\g+±win32.conf,

QMAKE_LFLAGS_DLL 由 -shared 改为 -static。


4. 生成exe文件

新建工程并编译

打开Qt,新建工程,选择静态编译套件,
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第6张图片

左下角选择release模式,Ctrl + B编译,编译出来就可以直接运行exe程序了,

或者在已有项目中添加构建,左下角选择 Qt5.11.2 MinGW static -> Release,重新编译:
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第7张图片
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第8张图片

exe程序在工程文件同级的 build-项目名称-Qt_5_11_2_MinGW_static-Release\release 文件夹下。
Qt for Windows:Qt 5.11.2 MinGW 静态编译_第9张图片

注:如果选择debug,编译没问题,但是编译出来的exe占用空间较大。


参考资料

https://www.cnblogs.com/ike_li/p/6860089.html

https://blog.csdn.net/wsj18808050/article/details/50909381

你可能感兴趣的:(Qt)