文章目录
准备工作
Qt6.2.6源码编译及安装详细版 一(Win10+VS2023)
Qt6.2.6源码编译及安装详细版 二(Win10+VS2023)
工具集合
需要的工具都放在这里了。
提取码:PBc2
安装Visual Studio Community 2022
从这里下载安装。无须挂代理,微软服务器的下载速度还是可以的。
选择使用c++的桌面开发,选择全部下载后再安装。
安装python3 (必须)
Miniconda 镜像使用帮助
打开cmder或者git bash,输入以下命令
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -o miniconda.exe
# 或者
curl https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_23.5.2-0-Windows-x86_64.exe -o miniconda.exe
start /wait "" miniconda.exe /S
del miniconda.exe
其他操作系统安装方法,如mac、Linux安装方法看这里
- 创建开始菜单快捷方式(仅限支持的程序包)。
- 将Miniconda3注册为系统Python 3.10推荐。
- 允许其他程序,如VSCode、PyCharm等,自动检测Miniconda3作为系统上的主要Python 3.10。
完成后清除包缓存
- 允许其他程序,如VSCode、PyCharm等,自动检测Miniconda3作为系统上的主要Python 3.10。
- 推荐。在不损害功能的情况下恢复一些磁盘空间。
安装cmake (必须)
Cmake 是一个构建工具,帮助您为项目生成安装规则。您可以使用官方网站上的预编译二进制文件在 Windows、macOS 和 Linux 平台上安装。安装过程包括提取源文件、创建 build 目录、运行 CMake 配置 build 树并使用选定的 build 工具来构建软件。
从camke网站下载,cmake版本应不低于3.19。
或者利用QT的(如果安装有的话),
# qt6/Tools/CMake_64/bin
$ ./cmake.exe --version
cmake version 3.24.2
安装perl
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 “实用报表提取语言”。
Perl 是高级、通用、直译式、动态的程序语言。
Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。
Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性。
Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
从ActivePerl下载 ,或者从Strawberry Perl下载
安装ninja
Ninja 是Google的一名程序员推出的注重速度的构建工具,一般在Unix/Linux上的程序通过make/makefile来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度。
下载网址
或者利用QT的(如果安装有的话),
# qt6\Tools\Ninja
$ ./ninja.exe --version
1.10.2
安装Ruby
下载地址:
- 官网:http://rubyinstaller.org/downloads/
- 国内:https://rubyinstaller.cn/
**注意:**在安装时,您可能有不同的可用版本。
- Window 系统下,我们可以使用 RubyInstaller 来安装 Ruby 环境,下载地址为:请点击这里下载。
- 下载 rubyinstaller 之后,解压到新创建的目录下:
- 双击 rubyinstaller-2.2.3.exe 文件,启动 Ruby 安装向导。
- 点击 Next,继续向导,记得勾选 Add Ruby executables to your PATH,直到 Ruby 安装程序完成 Ruby 安装为止。
$ ruby -v
ruby 2.2.3
Qt6.2.6源码下载
可以从腾讯云下载源码。网址
# 用certutil查看MD5
certutil -hashfile qtstudy\qt-everywhere-opensource-src-6.2.6.zip MD5
# 或者 用md5sum查看MD5
md5sum.exe qt-everywhere-opensource-src-6.2.6.zip
# 创建解压目录
mkdir qqtmp
# 解压
"D:\Program Files (x86)\360\360zip\360zip.exe" -ex H:\qtstudy\qt-everywhere-opensource-src-6.2.6.zip H:\qtstudy\qqtmp
# 解压完成后移出来
mv qqtmp/qt-everywhere-src-6.2.6/ .
# 改名为qt62
mv qt-everywhere-src-6.2.6 qt62
配置Qt
配置Qt 环境脚本,
cd /e
mkdir qtstudy
touch qtstudy/qt.bat
创建Qt 环境脚本脚本为E:\qtstudy\qt6vars.cmd
,内容如下
REM Set up compiler, in this case Visual Studio Professional 2022 for amd64 CPU's
CALL "D:\\TDDOWNLOAD\\VS2023\\VC\\Auxiliary\\Build\\vcvarsall.bat" amd64
SET _ROOT=H:\\qtstudy\\qt62
SET PATH=%\_ROOT%;%PATH%
SET _ROOT=
SET PATH=D:\TDDOWNLOAD\miniconda3;%PATH%
SET PATH=D:\TDDOWNLOAD\qt6\Tools\Ninja;%PATH%
SET PATH=D:\TDDOWNLOAD\qt6\Tools\CMake_64\bin;%PATH%
SET PATH=D:\TDDOWNLOAD\strawberry-perl-5.32.1.1-32bit-portable\perl\bin;%PATH%
CALL是用来引用vs编译器的相关环境变量的。编译32位,要改为x86
,其他参数看vcvarsall.bat
脚本。请根据电脑具体环境修改配置 。
SET _ROOT=空
这是为了防止变量污染。
选项如下
命令 | 含义 |
---|---|
QT_NO_EXCEPTIONS | 宏开关,关闭Qt异常 |
-debug-and-release | 编译debug和release版本 ,不加只编译debug |
-force-debug-info | 为release版本创建符号信息 |
-platform win32-msvc | win32-msvc 平台 |
-opensource -confirm-license | 编译的时候开源版本 |
-prefix %MY_INSTALL_PATH% | 编译完成之后,执行 cmake insall 自动复制到MY_INSTALL_PATH目录下 |
-nomake examples | 不编译 examples 组件 |
-nomake tests | 不编译 tests组件 |
-skip qtwebengine | 跳过qtwebengine模块 |
-mp | 使用多个处理器进行编译(MSVC only) |
-opengl dynamic | 指定opengl库的使用方式为动态 |
如果编译32位,使用-platform win32-msvc
时,并且amd64
要改为x86
构建 Qt
构建 Qt 库,Win+s
,输入cmd ,回车打开cmd命令行窗口。
环境检测 (可选)
# 切换到E盘
C:\Users\Administrator>E:
# 创建 E:\qtstudy\qt62-build-64 目录
md qtstudy\qt62-build-64
# 进入目录
cd qtstudy\qt62-build-64
# 查看环境
python -V
Python was not found; run without arguments to install from the Microsoft Store
cmake --version
'cmake' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
ninja.exe --version
'ninja.exe' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
ruby -v
'ruby' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
perl -v
'perl' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
执行环境设置脚本 (必须)
# 切换到E:盘
E:
# 切换到安装目录
cd E:\qtstudy\qt62-build-64
# 执行环境脚本
%SystemRoot%\system32\cmd.exe /E:ON /V:ON /k E:\qtstudy\qt6vars.cmd
再次输入命令检查环境检测 (可选)
python -V
Python 3.10.12
cmake --version
cmake version 3.24.2
ninja.exe --version
1.10.2
perl -v
This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x86-multi-thread-64int
nmake /HELP
Microsoft (R) 程序维护实用工具 14.36.32537.0 版
生成配置与构造 (必须)
本文中H:\qtstudy\qt62
为源码目录,E:\qtstudy\qt62-build-64
为安装目录。
# 生成配置
H:\qtstudy\qt62\configure.bat -prefix E:\qtstudy\qt62-build-64 -opensource -confirm-license -opengl dynamic -nomake examples -nomake tests -mp -skip qtwebengine
# 构建 方法一
cmake --build . --parallel
# 构建 方法二
ninja -f E:\qtstudy\qt62-build-64\build.ninja
# 第二天, 执行安装
cmake --install .
不要加-optimize-size
选项,强制优化有可能报错。
编译qtwebengine是比较复杂的,初次编译建议跳过,设置-skip qtwebengine
。
构建release版本,请加上-debug-and-release
参数。
安装 Qt
源码编译安装完成之后,需要安装Qt Creator工具来使用我们刚刚编译好的QT。也可以安装qt5.14.2。qt5的最后一个离线安装包。
打开Qt Creator, Tools , External , Configure
填写名称,选择对应编译器,添加qt 版本(选择对应的路径),确定。
参照其他版本,设置Cmake,确定。
新建工程,File- New Project - Application (Qt) - Qt Widgets Application。依次填写,名称,选择 Build System ,Translantion,
Kits 选择我们创建的Qt6.2.6 只钩Debug,去掉Release、Profile选项。
其他
Qt WebEngine and Qt PDF
编译Qt Webengin和Qt PDF需要Windows 10 SDK 18以上。
Qt WebEngine and Qt PDF have additional build requirements
Python (>=3.6.x)
Python html5lib
Bison, Flex
GPerf
Node.js version 8 or later (version 12 or later is recommended)
Windows: Visual Studio 2019 v16.11+ (required for QtWebEngine to address an issue with defaulted noexcept operators)
Windows: Windows 10 SDK >= 10.0.19041.0 (version 2004) for QtWebEngine