编译 Qt 5.15.x For Windows 基础教程 Visual Studio 2019 MSVC142 x64
=========================================================================
准备工作:(必须)
第一步:
Qt 源码下载:https://download.qt.io/official_releases/qt/
Qt Creator 源码下载:https://download.qt.io/official_releases/qtcreator/
第二步:
安装 Visual Studio 2019 并配置 VC++ 桌面开发工作负载:(怎么安装就不用说了吧)
小白如何下载安装 Visual Studio: https://docs.microsoft.com/zh-cn/visualstudio/?view=vs-2019
附上我的版本信息:
版本信息:Visual Studio 2019 16.8.x
平台工具集:MSVC142 x64
Windows SDK 版本:17763.132
C++编译器版本:Microsoft VC++ 1928
第三步:
编译 Qt 5.15 需要预先安装以下解释器并配置环境变量:
Python 3.x: https://www.python.org/downloads/
Perl64: https://www.perl.org/get.html
(以上缺一不可 !)
如果需要 Make 本地文档,则需要安装 LLVM ,而且需要的是 Qt Company 预构建的 LLVM 。
LLVM Qt Prebuilt: https://download.qt.io/development_releases/prebuilt/libclang/qt/
虽然现代开发主张阅读官方在线文档,但对于有特殊需求的开发者仍然需要本地文档。
建议工作:(非必须)
1,阅读此教程之前,请尽可能阅读Qt官方文档熟悉所有命令。
Qt 构建流程简述:https://doc.qt.io/qt-5/windows-building.html
Qt Configure 命令官方解释:https://doc.qt.io/qt-5/configure-options.html
Qt Doc LLVM 预配置:https://doc.qt.io/qt-5/qdoc-guide-clang.html
2,编译环境建议在纯英文环境下进行,且源码路径与构建目录路径尽量简短且不包含空格、中文。
笔者是使用 Hyper-V 安装英文版 Win10 LTSC ,不建议使用 VMware 客户端。
可以下载微软官方Windows开发环境(英文): https://developer.microsoft.com/zh-cn/windows/downloads/virtual-machines/
3,构建之前,请更新 Visual Studio 版本到最新。(但建议是VS的长期维护版本,例如16.4、16.7.)
因为框架编译之后需要分发给用户使用很长时间,为了降低后期迁移维护的成本,请尽可能保持最新。
从软件开发者的角度来讲,我们是希望用户使用我们的最新版软件,同样,上游那些搞编译器的鬼精老头子们也希望我们使用最新版编译器。
同时,对于以后升级软件依赖的底层框架版本,改动也会更少。
4,请尽量锁定编译器版本。
打开你想用于构建的 Visual Studio ,随便新建一个C++项目,执行代码:
#include <iostream> int main() { std::cout << _MSC_VER << std::endl; }
可查看你当前的 VC++ 编译器版本号。
然后到源码目录中找到这个文件:
<SrcPath>\qtbase\mkspecs\common\msvc-version.conf
打开这个文件,在第一行添加:
QMAKE_MSC_VER = 1928
后面的数字就是你Print到的数字。
5,请尽可能在固态硬盘中进行构建。
整个构建过程相当于是对硬盘进行高频 4K IO 操作,为了保证性能,请尽可能使用固态硬盘,并在此之前手动运行Trim以确保最佳IO性能。笔者电脑配置为 Y9000k-2020H,10875H + 32GB 3200MHz + 1TB PM981a ,在Hyper-V中以CPU基础频率构建只需要两小时,效率非常高。
=========================================================================
编译步骤:
第一步:
解压源码,并创建一个构建目录。
例如:
将源码解压到: C:\repos\Qt-Source-5.15.2
创建构建目录: C:\repos\Qt-Build-5.15.2
第二步:
在开始菜单中找到 Visual Studio 2019 程序组,并运行 x64 Native Tools Command Prompt for VS 2019 命令行工具,切换到源码目录。
如果你要编译 x86 版本,就运行 x86 的命令行工具。
然后切换到源码解压的目录:(路径根据个人选择,此为示例。)
cd C:\repos\Qt-Source-5.15.2
第三步:
设置 LLVM 路径,注意,LLVM 必须是上面说的由 Qt Company 预构建的 LLVM。
LLVM安装路径也是由个人选择,在此示例设置 LLVM 路径命令:
set LLVM_INSTALL_DIR=C:\SDK\LLVM\Qt\libclang set QDOC_USE_STATIC_LIBCLANG=1
第一个命令就是设置 LLVM 安装路径到当前命令行环境变量。
第二个命令则是设置将 QDoc 编译为静态版本。(一般情况)
如果不需要本地文档,可以跳过LLVM步骤。现代开发主张阅读官网在线文档。
第四步:
执行安装配置。(最核心,非常重要)
命令行继续执行:
configure -debug-and-release -confirm-license -opensource -platform win32-msvc -prefix "C:\\repos\\Qt-Build-5.15.2" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -opengl dynamic -skip qtwebengine -nomake tests -no-compile-examples -mp
命令解读:
-debug-and-release : 编译 DeBug 和 Release 版本。
-confirm-license :自动选择许可类型。
-opensource :编译开源版本
-platform win32-msvc : 环境为 Win32 ,编译器为 MSVC。
-prefix "<Path>" :设置构建目录,最终构建好的文件将会输出到此目录。
-qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz :选择连带构建的三方库。
具体有多少种三方库可构建,请参阅:https://doc.qt.io/qt-5/configure-options.html
-opengl dynamic :设置 OpenGL 版本为动态。和 desktop 具体区别请继续参阅上面地址。
-skip qtwebengine :跳过 Qt WebEngine 没有必要且体积非常大的东西。(官方都建议跳过)
-nomake tests :跳过 Tests 。
-no-compile-examples :跳过构建例子,但拷贝例子源码。
-mp :多核多线程编译。(加快编译速度)
第四步:
构建并Install文件到构建目录:
nmake && nmake install
此过程需要等待数小时,一般情况下两小时即可完成。
第五步:
生成文档:
nmake docs
第六步:
安装文档到构建目录:
nmake install_docs
至此,Qt 框架编译完成。
Good luck!