Windows 静态编译 安装 Qt5 备忘
- 0-先决条件
- 安装MSVC
- 下载jom
- 下载qt5源码
- 1-编译与安装
- 2-参考
0-先决条件
安装MSVC
https://visualstudio.microsoft.com/zh-hans/downloads/
我安装了Visual Studio 2022,选择安装了其中的“使用C++进行桌面开发”工作负荷。
下载jom
https://download.qt.io/official_releases/jom/
下载并解压缩备用。
下载qt5源码
https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/
下载并解压缩备用。
网上很多教程都要下载很多的编译环境,我测试最新版Qt5编译主要功能并不需要除C++编译器与cmake以外的编译环境。安装Visual Studio 2022时会自动安装C++编译器与cmake。
1-编译与安装

找到你安装好的msvc,打开命令行工具,如上图。在命令行内进入源码文件夹。
如果你不会在cmd里进入文件夹,那就去问一下可爱的搜索引擎。
接下来需要在命令行内输入编译参数。
生成参数参考
-static //指明是静态编译
-prefix "D:\Software\Qt\6.0.x\6.0.2\msvc2019_64_static" //指明安装的目录,自行修改
-confirm-license -opensource //指明是开源版本的qt
-debug-and-release //需要编译的版本,可选-debug和-relaease
-force-asserts //强制启用Q_ASSERT,即使在release构建中
-platform win32-msvc //指明使用msvc编译
-nomake examples -nomake tests //不编译样例,跳过 Test
-no-compile-examples //跳过构建例子,但拷贝例子源码。
-qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz //可选第三方库
-opengl desktop //常规桌面版OpenGL
-opengl dynamic //设置 OpenGL 版本为动态
-mp //多线程编译
-skip qtserialbus -skip qtspeech //跳过编译某些模块,有风险
-skip qtwebengine //跳过 Qt WebEngine 没有必要且体积非常大的东西。(官方都建议跳过)
具体有多少种三方库可构建,请参阅:https://doc.qt.io/qt-5/configure-options.html
opengl我这里选择了桌面版,请看qt的文档查看各个版本的区别。
我的编译参数
configure.bat -static -prefix "C:\Users\zhopi\qt-5.15.4-static-MSVC2022-64bit" -confirm-license -opensource -debug-and-release -no-compile-examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -mp
注意: 我没有指定编译的平台,而是通过开启不同的MSVC环境来编译32bitQt和64位Qt。开启x64的命令行编译的就是64位的Qt,x32就是32位。
输入这一大堆东西后,等一会儿,如果没有报错的话,命令行里应该会提示要你键入 nmake 进行编译。这里使用jom进行编译。
jom可以粗暴的理解为可以多线程编译的nmake。
还记得解压备用的jom在哪吗?下面就要用了。
在命令行内输入
[你的jom的绝对路径] -j [你机器上CPU的线程数]
我的输入的命令是
C:\jom_1_1_3\jom.exe -j 16
去散个步吧,要编译好一会儿。
当然可以使用只nmake进行编译,不过那就要单核编译到地老天荒了。
编译完成后,输入以下内容安装到你指定的位置。
jom install
2-参考
芯片烤电池的草稿箱
Microsoft文档 通过命令行使用 Microsoft C++ 工具集