下载
国内下载网址:
清华大学镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt
根据需要选择对应版本,我这是选择5.14.2
注意需要下载安装包和源码
下载Python2
在进行静态编译Qt5.14.2MinGW32 版本时会用到Perl和Python进行编译,因为Qt5.14.2自带了Perl所以无需再下载安装,只需安装Python,网上建议的是安装Python2版本(QtWebEngine编译时要求Python2 的版本高于2.7.5),所以这里安装Python2.7.16,也就是Python2的最后一个版本。下载网址:
https://www.python.org/downloads/release/python-2716/
不太熟悉Python的建议下载msi版本的,可以在安装过程中配置python的安装路径到Windows的PATH环境变量中。所以建议按下面的地址下载:
https://www.python.org/ftp/python/2.7.16/python-2.7.16.amd64.msi
安装完成后要配置一下环境变量
安装QT 5.14.2
以管理员身份执行qt-opensource-windows-x86-5.14.2.exe,需要登录qt账号,没有账号可以用邮箱注册一个,随后弹出页面按下图选择:
安装完成后,开始菜单中运行 QT5.14.2 (MinGW 7.3.32-bit) 命令行
输入perl -v 检查 perl 版本
输入python -v 检查 python版本(输入"quit()" 可退出)
静态编译
解压qt-everywhere-src-5.14.2.zip
在QT安装路径下新建mingw73_32_static目录,用于存放静态编译库
QT5.14.2 (MinGW 7.3.32-bit) 命令行 切换到qt-everywhere-src-5.14.2目录下,运行以下命令(-prefix之后即是新建的mingw73_32_static目录):
configure.bat -static -release -confirm-license -opensource -opengl desktop -platform win32-g++ -prefix “D:\Qt\5.14.2\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
该命令耗时大概为几分钟
编译:
MinGW 命令窗口输入 mingw32-make 开始编译,该命令耗时大概2.5小时
(ps:电脑配置高也可运行 mingw32-make -12,表示12条线程一起跑,会更快)
安装
MinGW 命令窗口输入 mingw32-make install,该命令耗时大概几分钟
QT creator 新增静态编译选项:
首先,在QtCreator中依次打开“工具”-“选项”-“Kits”,点击“Qt Version”选项卡然后点击里面的添加按钮,找到mingw73_32_static编译环境bin目录下的qmake.exe文件,根据本篇的配置这个文件路径是D:\Qt\5.14.2\mingw73_32_static\bin\qmake.exe,然后确定,如下所示:
添加构建套件
接下来,点击“构建套件Kit”选项卡,点击“添加”按钮添加Kit并将其命名为mingw73_32_static,
在Qt Version一栏注意选择刚刚添加的Qt Version,即Qt5.14.2(mingw73_32_static),然后编译器和调试器都选择MinGW7.3.032-bit ,如下图所示:
修改配置文件
经过上述操作之后程序并不能马上就可以进行静态编译,还需要进行配置(网上有些人没做这一步导致编译生成的程序还是需要带着Qt的dll运行)。
要修改的配置文件有两个,分别是gcc-base.conf和g+±win32.conf,这两个文件都在新加的编译套件目录下,在本机上的位置为C:\Qt\Qt5.14.2\5.14.2\mingw73_32_static\mkspecs\common\,如下图所示:
将C:\Qt\Qt5.14.2\5.14.2\mingw73_32_static\mkspecs\common\目录下的gcc-base.conf文件中的QMAKE_LFLAGS参数值改为-static并保存。如下图所示:
将C:\Qt\Qt5.14.2\5.14.2\mingw73_32_static\mkspecs\common\目录下的g+±win32.conf文件中的QMAKE_LFLAGS_DLL参数值改为-static并保存。如下图所示: