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静态编译程序(Mingw编译)_第1张图片
安装QT时,记得勾选“Sources”
QT静态编译程序(Mingw编译)_第2张图片
(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)
QT静态编译程序(Mingw编译)_第3张图片
输入以下命令检查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静态编译程序(Mingw编译)_第4张图片
切换到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中,看到如下内容:
QT静态编译程序(Mingw编译)_第5张图片

(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
QT静态编译程序(Mingw编译)_第6张图片
(9)QT Creator中配置静态编译器
工具->选项
QT静态编译程序(Mingw编译)_第7张图片
QT静态编译程序(Mingw编译)_第8张图片

QT静态编译程序(Mingw编译)_第9张图片
克隆一个原来的,并修改以下标红框的选项
QT静态编译程序(Mingw编译)_第10张图片

你可能感兴趣的:(QT,QT,C++,静态编译,编译器)