参考资料
- https://doc.qt.io/qt-5/windows-building.html
- https://doc-snapshots.qt.io/qt5-5.15/windows-building.html
- https://doc.qt.io/qt-5/supported-platforms.html
- https://doc.qt.io/qt-5/windows.html
- https://doc.qt.io/qt-5/windows-requirements.html
- https://doc.qt.io/qt-5/configure-options.html
- https://wiki.qt.io/Building_Qt_5_from_Git
- https://wiki.qt.io/MinGW-64-bit
- https://blog.csdn.net/zxjohnson/article/details/106621457 (Qt 5.15.0编译指南)
- https://blog.csdn.net/MrTsai_cpp/article/details/115175669 (Qt 5.15的源码编译(Windows))
- https://www.cnblogs.com/arxive/p/14412614.html (QT 5.15 及以后QT版本源码编译(静态库、动态库))
- https://www.kucoding.com/article/149 (Qt6.5.3静态编译与使用-酷编程)
- https://blog.csdn.net/weixin_50964512/article/details/124746458 (Qt 静态编译与使用(6.2 详解版))
下载源码包
安装build工具并配置相关环境变量
- Visual Studio 2019或2022
- These tools are not needed to run Qt 5 applications, but they are required for building Qt 5 from source.
- Perl - Install a recent version of perl (for instance (https://strawberryperl.com/) and add the installation location to your PATH.
- Python - Install Python from the here and add the installation location to your PATH.
验证build工具是否正确安装
- 打开"x64 Native Tools Command Prompt for VS 2022"
- 输入
1 2
Perl -V python -V
设定文件夹
- F:\Qt\5.5.11\src 源码目录qt-everywhere-opensource-src-5.15.11.zip解压,并改名为src,放置于F:\Qt\5.5.11\src
- F:\Qt\5.5.11\build-msvc2019_64 build目录
- F:\Qt\5.5.11-static\msvc2019_64 最后安装目录
编译
-
建立F:\Qt\qt5vars.cmd文件,需设置好VS2022的bat路径(x64 Native Tools Command Prompt for VS 2022)、是否amd64、Qt源代码路径
-
建立cmd链接cmd-qt5vars,并运行
- 本步骤主要用途为
- 开启cmd.exe /E:ON /V:ON
- 替代下文手动将Qt源码相关路径加入PATH
- /E:ON 启用命令扩展 详见[cmd.exe启动参数说明]
- /V:ON 启用延迟的环境变量扩展
- 本步骤主要用途为
-
输入
1 2
F: cd Qt\5.15.11\build-msvc2019_64
依上述定位到F:\Qt\5.15.11\build-msvc2019_64 依次执行命令
1 2 3
..\src\configure.bat -static -prefix "F:\Qt\5.15.11-static\msvc2019_64" -debug-and-release -nomake examples -nomake tests -skip qtwebengine -opensource jom #按官方文档安装jom(是nmake的克隆,支持并行执行多个独立命令类似于GNU make的-j命令) jom install
编译(此段内容为历史记录,作废)
-
打开"x64 Native Tools Command Prompt for VS 2022"
-
本步骤在2023-11-23编译时未使用,查看官网文档可将上一步替换优化如下
- 建立F:\Qt\qt5vars.cmd文件,需设置好VS2022的bat路径、是否amd64、Qt源代码路径
- 建立cmd链接cmd-qt5vars,并运行
- 比较后,本步骤主要用途为
- 开启cmd.exe /E:ON /V:ON
- 替代下文手动将Qt源码相关路径加入PATH
- /E:ON 启用命令扩展 详见[cmd.exe启动参数说明]
- /V:ON 启用延迟的环境变量扩展
-
输入
1 2
F: cd Qt\5.15.11\build-msvc2019_64
依上述定位到F:\Qt\5.15.11\build-msvc2019_64 依次执行命令
1 2 3 4
#当使用上述qt5vars.cmd文件时,可省略此三行命令,因为已经在qt5vars.cmd文件中执行 SET _ROOT=F:\Qt\5.15.11\src SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH% SET _ROOT=
1 2 3 4 5
..\src\configure.bat -static -prefix "F:\Qt\5.15.11-static\msvc2019_64" -debug-and-release -nomake examples -nomake tests -skip qtwebengine -opensource nmake #2023-11-23实测较慢,可按官方文档安装jom(是nmake的克隆,支持并行执行多个独立命令类似于GNU make的-j命令),此步改为 #jom nmake install #如上一步执行jom,此步应对应执行 #jom install
说明1
- -static就是静态编译的意思,
- -debug-and-release,则表示将调试版、发行版都进行编译。
- -prefix 指定安装将会部署的位置,根据自己情况修改
- -nomake examples 不需要编译示例
- -nomake tests 不需要编译测试工程
- -skip qtwebengine 暂时先不编译webengine模块,因为太大了
- -opensource 开源版本
- -confirm-license 是为了自动确认开源证书,免得到时暂停手动确认
- -qt-zlib -ssl -icu 指示检测这些库,并在需要时使用
- -opengl desktop 明确指示使用你windows上安装的opengl驱动来编译程序,但这样编译出的程序在别的电脑上运行时需要目标电脑上安装的opengl驱动能兼容你的程序
- -platform win32-g++ 指明编译平台是windows,并使用mingw编译器
- For Windows machines, either MinGW or Visual Studio toolchains can be used to compile Qt.
1 2
configure.bat -platform win32-g++ configure.bat -platform win32-msvc
- For Windows machines, either MinGW or Visual Studio toolchains can be used to compile Qt.
说明2
- 等待配置完成后(其间要输入y同意协议),再运行命令
nmakejom开始构建: - 然后就是慢慢等编译了,这个过程比较漫长,如果电脑配置较低,估计需要几个小时:
- 编译完成后,继续运行命令
nmake installjom install即可将编译好的静态库安装到前面我们所指定的目录中去: - 此时你就可以删除前面的build文件夹。
2023-11-23编译
环境:YPR-Desktop、Windows 11 pro 23H2、Visual Studio 2022、约1小时、1.58GB(有部分编译错误)build文件约8.2GB,已删除未编译doc
2023-11-24编译
- 环境:YPR-Desktop、Windows 11 pro 23H2、Visual Studio 2022、约15分钟、4.14GB
- 采用了qt5vars.cmd、采用了jom和jom install
- build文件约24GB,已删除
- 未编译doc
- 存档:7z(9-极限压缩)