【Qt】编译 Qt 5.15.x For Windows 基础教程 Visual Studio 2019 MSVC142 x64

【Qt】编译 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++项目,执行代码:

cpp 复制代码
#include <iostream>

int main()
{
    std::cout << _MSC_VER << std::endl;
}

可查看你当前的 VC++ 编译器版本号。

然后到源码目录中找到这个文件:

bash 复制代码
<SrcPath>\qtbase\mkspecs\common\msvc-version.conf

打开这个文件,在第一行添加:

cpp 复制代码
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 的命令行工具。

然后切换到源码解压的目录:(路径根据个人选择,此为示例。)

bash 复制代码
cd C:\repos\Qt-Source-5.15.2

第三步:

设置 LLVM 路径,注意,LLVM 必须是上面说的由 Qt Company 预构建的 LLVM。

LLVM安装路径也是由个人选择,在此示例设置 LLVM 路径命令:

bash 复制代码
set LLVM_INSTALL_DIR=C:\SDK\LLVM\Qt\libclang
set QDOC_USE_STATIC_LIBCLANG=1

第一个命令就是设置 LLVM 安装路径到当前命令行环境变量。

第二个命令则是设置将 QDoc 编译为静态版本。(一般情况)

如果不需要本地文档,可以跳过LLVM步骤。现代开发主张阅读官网在线文档。

第四步:

执行安装配置。(最核心,非常重要)

命令行继续执行:

bash 复制代码
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文件到构建目录:

bash 复制代码
nmake && nmake install

此过程需要等待数小时,一般情况下两小时即可完成。

第五步:

生成文档:

bash 复制代码
nmake docs

第六步:

安装文档到构建目录:

bash 复制代码
nmake install_docs

总结

至此,Qt 框架编译完成。

Good luck!

相关推荐
无小道2 小时前
Qt-qrc机制简单介绍
开发语言·qt
CodeKwang3 小时前
Qt实战:简易Excel表格 | 附完整源码
qt·excel·qtabwidget·qt控件
雨中风华4 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
永远是我的最爱5 小时前
基于.NET的小小便利店前台收银系统
前端·sqlserver·.net·visual studio
C++ 老炮儿的技术栈6 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
yuuki2332336 小时前
【C++】继承
开发语言·c++·windows
非凡ghost6 小时前
PowerDirector安卓版(威力导演安卓版)
android·windows·学习·软件需求
打工哪有不疯的6 小时前
使用 MSYS2 为 Qt (MinGW 32/64位) 完美配置 OpenSSL
c++·qt
疯狂敲代码的老刘8 小时前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
LYOBOYI1238 小时前
qtcpSocket详解
c++·qt