说明:以下内容部分来自腾讯元宝。

QT的下载

https://download.qt.io/

https://download.qt.io/archive/qt/6.9/6.9.1/

Qt 6.9

选择最新版本,现在最新版本是6.9.1,根据路径archive->qt->6.9->6.9.1进入最新版本。注意有两个目录:submodules和single,二者的差异请参考文章:QT源码下载时single​​ 和 ​​submodule​​ 的差异-CSDN博客https://blog.csdn.net/qq_20725221/article/details/150017914?sharetype=blogdetail&sharerId=150017914&sharerefer=PC&sharesource=qq_20725221&spm=1011.2480.3001.8118

进入single目录,点击qt-everywhere-src-6.9.1.zip进行下载。

QT的编译

1. 系统要求

  • ​操作系统​​:Windows 10/11(64位,版本 21H2 及以上)

  • ​磁盘空间​​:至少 20GB 可用空间(源码约 10GB,编译产物约 8GB)

  • ​Visual Studio 2022​​:需安装 ​​C++ 桌面开发工具链​​(关键组件)。

2. 安装 Visual Studio 2022

  1. 下载 Visual Studio 2022 社区版(免费)。

  2. 安装时勾选以下工作负载:

    • ​使用 C++ 的桌面开发​​(必选,包含 MSVC 编译器、MSBuild 等)。

    • 可选:​​Windows 10/11 SDK​​(默认已勾选,确保支持最新系统 API)。

3. 安装依赖工具

Perl

  • ​Perl​​:Qt 配置脚本依赖 Perl,推荐安装 Strawberry Perl(64位版本),并添加 C:\Strawberry\perl\bin到系统 PATH。(下载地址:Strawberry Perl for Windows - Releases

下载

安装

点击install开始安装

Python

下载

安装

安装ninja

  1. 解压到任意目录(如 E:\ninja),下载地址:Releases · ninja-build/ninja

  2. ​设置环境变量​​:

    • 右键“此电脑” → 属性 → 高级系统设置 → 环境变量 → 编辑 Path→ 添加 Ninja 所在目录。

系统环境变量中添加。

安装Clang:

下载链接:Download LLVM releases

暂时不安装,不影响Qt源码编译。

二、解压 Qt 源码

  1. 下载最新的 Qt single 源码包(如qt-everywhere-src-6.9.1.zip)到本地(如 E:\QT\src)。

  2. 解压到目标路径(如 E:\QT\src\qt-everywhere-src-6.9.1),建议使用 7-Zip或 WinRAR 解压。


三、配置编译参数(关键步骤)

1. 启动 VS2022 开发人员命令提示符
  • 按 Win + S搜索 ​​x64,找到"x64 Native Tools Command Prompt for VS 2022"(x64的电脑就选这个,x86的就选"Developer Command Prompt for VS 2022"​​,别搞错了,否则会遇到后面的问题模块计算机类型“x86”与目标计算机类型“x64”冲突),右键选择 ​​"以管理员身份运行"​​(避免权限问题)。

2. 切换到 Qt 源码目录
C:\Windows\System32>E:

E:\>cd E:\QT\src\qt-everywhere-src-6.9.1

E:\QT\src\qt-everywhere-src-6.9.1>
3. 运行配置脚本 configure.bat

在源码目录下创建build目录并进入该目录,执行源码目录下的configure.bat脚本。

E:\QT\src\qt-everywhere-src-6.9.1>mkdir build

E:\QT\src\qt-everywhere-src-6.9.1>cd build

E:\QT\src\qt-everywhere-src-6.9.1\build>E:\QT\src\qt-everywhere-src-6.9.1\configure.bat

    直到出现以下内容表示配置完成了:

    Qt is now configured for building. Just run 'cmake --build . --parallel'
    
     * Tool bison is required.
     * Tool gperf is required.
     * Python3 html5lib is missing (E:/Python/install/python.exe).
     * 64-bit Node.js 14.9 version or later is required.
    
    Once everything is built, you must run 'cmake --install .'
    Qt will be installed into 'C:/Qt/Qt-6.9.1'
    
    To configure and build other Qt modules, you can use the following convenience script:
            C:/Qt/Qt-6.9.1/bin/qt-configure-module.bat
    
    If reconfiguration fails for some reason, try removing 'CMakeCache.txt' from the build directory
    Alternatively, you can add the --fresh flag to your CMake flags.
    
    -- Configuring done (1331.9s)
    -- Generating done (43.7s)
    -- Build files have been written to: E:/QT/src/qt-everywhere-src-6.9.1/build

    四、编译源码

    1. 执行编译命令
    cmake --build . --parallel
    2.编译过程中出现的问题

    问题1:E:\QT\src\qt-everywhere-src-6.9.1\qtmultimedia\src\multimedia\windows\qwindowsaudiosink.cpp(346): error C2398: 元素“2”: 从“uint32_t”转换为“qsizetype”需要收缩转换

    (这个问题应该也是由于使用了Developer Command Prompt for VS 2022指令窗口而不是x64 Native Tools Command Prompt for VS 2022指令窗口导致的,所以可以忽略,此处仅仅记录。

    解决方法:

    问题2:gn_main.obj : fatal error LNK1112: 模块计算机类型“x86”与目标计算机类型“x64”冲突

    FAILED: gn.exe
    F:/visual studio/install/product/VC/Tools/MSVC/14.44.35207/bin/Hostx86/x86/cl.exe /nologo src/gn/gn_main.obj /link /OPT:REF /DEBUG /MANIFEST:EMBED /MANIFESTINPUT:..\..\..\..\..\qtwebengine\src\3rdparty\gn\build\windows.manifest.xml /MACHINE:x64 /PDB:gn.exe.pdb /OUT:gn.exe advapi32.lib dbghelp.lib kernel32.lib ole32.lib shell32.lib user32.lib userenv.lib version.lib winmm.lib ws2_32.lib Shlwapi.lib base.lib gn_lib.lib
    src\gn\gn_main.obj : fatal error LNK1112: 模块计算机类型“x86”与目标计算机类型“x64”冲突
    ninja: build stopped: subcommand failed.

    出现了这个问题后,才知道Visual Studio 2022中配的是x86的编译器,原因如上提及到的,我使用的是Developer Command Prompt for VS 2022指令窗口而不是x64 Native Tools Command Prompt for VS 2022指令窗口,QT手册中也有配置环境的提醒,但是我没有留意,耽误了很长时间,不过一开始也不知道这个是干啥的,在弯路中成长也不错。

    五、安装编译结果

    编译完成后,执行安装命令:

    cmake --build . --parallel

    不得不说,我的电脑性能真不行,编至少都得有10个小时了,等得心累,不过幸好换了x64 Native Tools Command Prompt for VS 2022后没有再遇到问题。

    安装

    cmake --install .

     编译完成后,找了好久没找到编译生成的工具和库在哪儿,再重新认真看了一遍手册,发现人家有说的,就是自己不长眼睛,啊啊啊,在C盘中找到了,然后我将其拷贝到E盘目录下了。

    六、设置环境变量

    永久添加(推荐)
    按 Win + R,输入 sysdm.cpl,回车
    点击"高级"标签
    点击"环境变量"
    在"系统变量"中找到 Path,点击"编辑"
    点击"新建",添加 E:\QT\Qt-6.9.1\bin
    点击"确定"保存
    重新打开命令行窗口

    七、验证编译结果

    打开x64 Native Tools Command Prompt for VS 2022窗口,查看qmake的版本,正常显示则表示正常。

    F:\visual studio\install\product>qmake -v
    QMake version 3.1
    Using Qt version 6.9.1 in E:/QT/Qt-6.9.1/lib
    
    F:\visual studio\install\product>

    参考内容

    Qt for Windows - Building from Source | Qt 6.9

    Logo

    开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

    更多推荐