一、准备环境

包括安装VS2022,Windows SDK,Python3,这里就不再一一介绍了,需要说明的一点是如果要编译QtWebEngineQtPdf两个组件的依赖问题,当然如果不需要,也可以不管它,则不会编译。

  • python库html5lib
1WARNING: QtWebEngine won't be built. Python3 html5lib is missing.
2WARNING: QtPdf won't be built. Python3 html5lib is missing.

使用pip install html5lib 安装。

  • gperf、bison、flex
1WARNING: QtWebEngine won't be built. Tool gperf is required.
2WARNING: QtPdf won't be built. Tool gperf is required.

如果安装有Qt 5的Windows版本,比如5.14.2且安装了源码,可以在Qt5.14.2\5.14.2\Src\gnuwin32\bin目录下找到这些工具:

直接设置一下PATH路径即可。

如果没有,则需要手动下载,相对比较麻烦,这里给几个工具的地址:

Gperf for Windows Bison for Windows Flex for Windows

二、下载Qt 6.5源码

从官网下载 qt-everywhere-src-6.5.0.tar.xz,也可以下载 qt-everywhere-src-6.5.0.zip,由于前者压缩率更高,文件更小,下载更快,所以笔者选择了了前者。

三、解压

可以使用7z解压,也可以使用MinGW中的tar进行解压

1tar xvf qt-everywhere-src-6.5.0.tar.xz

注意,编译整个项目需要的磁盘空间比较大,在不编译QtWebEngineQtPdf两个组件的情况下,需要40G左右的空间,如果全部编译则需要更多空间

四、编译、安装

为了不污染源码目录,建议新建一个目录,比如buildvc,在这个目录下进行编译,下面的命令需要在VS2022的命令行提示符中运行,否则会找不到编译器以及其它相关的程序:

1cd qt-everywhere-src-6.5.0
2mkdir buildvc
3cd buildvc
4..\configure -prefix %CD%\qt6.5
5ninja

建议使用ninja进行编译,速度会更快,如果没有安装ninja,可以使用cmake --build .进行编译。ninja默认会进行并行编译,所以可以不用添加参数了。如果有错误且为乱码,则可以尝试使用chcp 65001将控制台编码改为UTF8来查看。

耐心等待编译完成,在编译过程中如果有退出,可以尝试继续使用ninja编译,直到继续完成。

笔者在编译过程中遇到qtspeech\src\plugins\tts\winrt\qtexttospeech_winrt_audiosource.h报错,做一个修改即可:

编译完成后,使用下面的命令进行安装:

1cmake --install .

就会安装在qt-everywhere-src-6.5.0\buildvc\qt6.5目录下。