My C++ Development.
前言:不包含qtwebengine。
一、准备文件
(1)mingw64-13.2.0
下载链接:,ucrt64_13.2_ucrt_posix_rev6_msys2.7z【蓝奏云】。

(2)qt6.6.3源码
下载链接:Download QT 6.6.3,我这里下载的是:qt-everywhere-src-6.6.3.zip。
(3)LLVM 18.1.5,编译文档用。
不编译文档,跳过该文章相关部分就行。
下载链接:LLVM 18.1.5,我这里下载的是:llvmorg-18.1.5.zip。
(4)Python
如果你已有Python,貌似只要是Python3就行,但是请确保路径无空格和中文。
下载链接:python-3.11.9-amd64.exe,安装时请避免使用带空格和中文的路径。
或者你的系统有scoop包管理,可以使用:
scoop install python
(5)Ninja 和 CMake
下载链接:ninja-win.zip,将解压后的exe目录添加到PATH环境变量。
或者你的系统有scoop包管理,可以使用:
scoop install ninja cmake
二、开始编译
2.1 检查环境
打开一个cmd窗口,请确保在这个窗口中可以执行,python、ninja、g++、cmake指令。
2.2 编译 LLVM(llvm和clang模块就行)
先编译llvm再编译clang。
新建两个文件夹(叫什么和在哪里都随便,别含中文路径和空格路径),然后打开cmake-gui,用命令行也可以,但是用gui方便查看库的一些定义啥的,也方便修改这些定义。

上下两行这样填写,第一行是源码目录,第二行是生成的工程位置,就是上面我们自己创建的:

然后点击界面左下侧的Configure按钮,首次可能会报错,说没有填写CMAKE_BUILD_TYPE,手动填上Release,然后在CMAKE_INSTALL_PREFIX一栏填写稍后编译完成后的安装目录,推荐自己创建一个,我这里是:

填写好以后,点击Generate按钮,应该就可以成功生成工程项目了。打开一个cmd窗口,进入到你的工程中。

后面的-j8不推荐填太大,我当时直接使用cmake --build . --parallel,直接32G内存干爆了。
编译完成后使用mingw32-make.exe install安装到上面配置的安装目录中。
然后编译clang,方法与上面一样,配置CMAKE_BUILD_TYPE为Release,CMAKE_INSTALL_PREFIX一栏填写稍后编译完成后的安装目录,我填写的是:D:\llvm-18.1.5\clang-build,其实两个工程的安装目录填一样(我第一次搞怕不行,分开两个)就行。
与llvm稍有不同的是,除了配置上面两个变量还需要填写一个LLVM_BINARY_DIR,就是你上面安装的llvm目录,我这里是:D:\llvm-18.1.5\llvm-build,

然后这里添加一个BOOL类型的Entry,Name填:LLVM_INCLUDE_TESTS,不勾选,确定,然后Generate就行。与上面llvm一样,
打开一个cmd窗口,进入到clang的工程目录,我这里是:D:\llvm-18.1.5\llvm-project-llvmorg-18.1.5\mybuildclang,然后执行,mingw32-make.exe -j8,完成后mingw32-make.exe install。最后将两个安装目录的内容拷贝到一起,并将目录改为libclang,如下图:

2.3 编译 qt6
解压源码,cmd进入到源码中:

配置,下面是cmd配置,我截图用的powershell(记录该文章才截的图,懒得换图了),powershell用的是$env的形式,用powershell的自己研究吧。
set PATH=%PATH%;D:\mingw-qt6\libclang\bin
set LLVM_INSTALL_DIR=D:\mingw-qt6\libclang
然后执行:
configure.bat -platform win32-g++ -debug-and-release -confirm-license -opensource -prefix D:\mingw-qt6\qt6-build -skip qtwebengine -nomake tests
其中D:\mingw-qt6\qt6-build是最后编译完成后的安装目录。
执行:
cmake --build . --parallel
构建完成后安装:
ninja install
构建文档,貌似会遇到复制报错的Error,手动把报错目标位置的目录删除再重新执行就行了:
ninja docs

ninja docs命令执行完成后,生成的文档在源码的doc目录下:

最后将doc文件夹复制到安装目录下,一个完整的不含qtwebengine模块(貌似mingw64不支持?)的qt6就完成了。




















