MingW8.1.0静态编译Qt6.2.4记录

本来下载了Qt6.4.2,结果编译失败,各种失败。

然后,重新下载了Qt6.2.4,终于成功编译完成。核心关键是Qt的版本与mingw版本匹配问题,不知道为什么,新版Qt编译会出现问题。出现的问题我暂时解决不了,只好使用目前的匹配版本。

这里简要的记录一下要点。

1、mingw的版本为:https://mirror.tuna.tsinghua.edu.cn/qt/development_releases/prebuilt/mingw_64/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

特别说明一下,最新版我也下载了,但是尝试Qt6.4.2的时候失败了,我就降级到这个版本。暂时没有使用最新版的mingw尝试,后续有空再试试。

2、Qt的版本为:https://ftp.jaist.ac.jp/pub/qtproject/archive/qt/6.2/6.2.4/single/qt-everywhere-src-6.2.4.zip

qt-everywhere-src-6.2.4.zip

3、Ruby的版本为:https://www.ruby-lang.org/en/

rubyinstaller-3.2.1-1-x64.exe

4、perl的版本为:https://strawberryperl.com/

strawberry-perl-5.32.1.1-64bit.msi

5、ninja的包为:https://github.com/ninja-build/ninja/releases

ninja-win.zip v1.11.1

6、cmake的版本为:https://cmake.org/

cmake-3.25.0-rc1-windows-x86_64.msi

7、Python的版本为:https://www.python.org/

python-3.11.2-amd64.exe

注意,如果需要安装QtPdf库,还需要python2.7.5以上的python2和Node.js:

WARNING: QtPdf won't be built. node.js version 10.19 or later is required.

WARNING: QtPdf won't be built. Python2 version 2.7.5 or later is required.

8、编译指令为:

1) configure -release -static -static-runtime -confirm-license -opensource -platform win32-g++ -nomake examples -prefix "D:\opt\Qt\qt624-static"  -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -qt-sqlite  -qt-tiff -qt-webp 
2) cmake —build . —parallel
3) cmake --install .

注意第1)条指令中,-qt-xxxx,表示使用Qt内置的库,否则会自动转换为-system-xxxx,这样会导致静态编译的库,要依赖一些DLL(这些DLL主要来自strawberry)。至于哪些可以使用-qt-xxx来选择,可以使用configure -help来输出帮助信息,根据帮助信息进行选择。

注意第3)条指令中的“.”,很关键哦。

最后再强调一个小问题,静态编译时,会在源代码文件夹下产生50G左右的临时文件,编译时,确保硬盘的剩余空间是足够大的。

(2023年5月1日补充:在Qt官网的文档发现,Qt6.5不再需要perl了,官网提供了各个编译器的版本,Qt6.5对应mingw11.2)

posted @ 2023-03-13 19:06  颜秋哥  阅读(734)  评论(0编辑  收藏  举报