欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-04 16:10:37
...

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编译)
安装QT时,记得勾选“Sources”
QT静态编译程序(Mingw编译)
(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编译)
输入以下命令检查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编译)
切换到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编译)

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

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

相关标签: QT