社交网站实名备案,橙色网站配色,七牛云,中企动力邮箱官方文档里给出了详细步骤#xff1a; Building Qt Sources Building Qt 5 from Git (Wiki)
注#xff1a;本文基于windows11vs2019x64qt5.15.9#xff0c;不编译Qt WebEngine
归纳总结如下#xff1a;
准备阶段
Qt for Windows - Requirements 安装python#xff0c;…官方文档里给出了详细步骤 Building Qt Sources Building Qt 5 from Git (Wiki)
注本文基于windows11vs2019x64qt5.15.9不编译Qt WebEngine
归纳总结如下
准备阶段
Qt for Windows - Requirements 安装python我这里用的是anaconda python 3.11要求2.7以上你也可以直接去官网下载https://www.python.org/downloads/ 安装perl我这里安装的是strawberry-perl-5.32.1.1-64bit.msi要求5.12以上下载地址https://strawberryperl.com/releases.html 安装ruby可选ruby是为了编译WebKit如果不编译该模块应该就不需要了我没有测试。我这里安装的是rubyinstaller-3.2.2-1-x64.exe下载地址https://rubyinstaller.org/2023/04/01/rubyinstaller-3.2.2-1-3.1.4-1-3.0.6-1-and-2.7.8-1-released.html 安装clang可选编译qtdoc时需要影响Qt Assistant里的参考文档如果编译了就可以在qt designer的帮助里查看参考文档。我这里安装的是LLVM-11.0.0-win64.exe其实qt官网有给出vs2019的版本libclang-release_140-based-windows-vs2019_64下载地址https://download.qt.io/development_releases/prebuilt/libclang/ 安装openssl可选编译Qt Network时需要为了支持 Secure Sockets Layer (SSL) 。我这里是下载源码自己编译教程openssl-1.1.1w.tar.gz下载地址https://www.openssl.org/source/ 安装ICU可选也是编译WebKit时需要为了UNICODE和Localization 因为我没有用到就没有研究它了 安装jom可选qt提供的一个工具可以实现并行编译提高编译速度。我这里安装的是jom_1_1_4.zip官网经常打不开可以到镜像源去下载https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/jom/ 下载Qt源码官网经常打不开可以到镜像源去下载 qt-everywhere-opensource-src-5.15.9.zip
把上述东西都安装在英文路径下注意目录名称尽量简短且不能带有空格检查系统环境PATH确保环境都设置好了我的设置如下
E:\qt-everywhere-src-5.15.9\gnuwin32\bin
E:\qt-everywhere-src-5.15.9\qtbase\bin
E:\anaconda3
C:\Strawberry\c\bin
C:\Strawberry\perl\site\bin
C:\Strawberry\perl\bin
E:\Ruby\bin
E:\jom其中 E:\qt-everywhere-src-5.15.9是qt源码目录 E:\anaconda3是python目录
编译阶段
1、在开始里找到x64 Native Tools Command Prompt for VS 2019以管理员权限运行 2、转到Qt源码目录
E:
cd E:\qt-everywhere-src-5.15.93、配置
注每次configure要基于干净的源码目录如果此前configure过要先执行jom distclean或nmake distclean实测非常耗时还不如直接删掉源码目录重新解压
set LLVM_INSTALL_DIRE:\LLVM
configure -prefix E:\Qt\5.15.9\msvc2019_64 -shared -debug-and-release -verbose -nomake tests -skip qtwebengine -opensource -confirm-license -opengl dynamic -openssl-runtime OPENSSL_INCDIRD:\openssl\vc16_x64\include其中 set LLVM_INSTALL_DIRE:\LLVM是设置LLVM的环境如果没有指定将无法编译qtdoc模块只有要编译qtdoc才需要这句 configure -help可以查看configure的参数说明此处仅给出上面用到的参数
-prefix E:\Qt\5.15.9\msvc2019_64 安装路径执行install后将会输出到该路径
-shared 生成动态链接库相应地-static就是静态库如果都不指定默认是-shared
-debug-and-release 生成debug和release两个版本的库也可以单独指定其中一种-debug或-release如果都不指定默认是-release
-verbose 在configure过程中打印详细信息方便排查问题
-nomake tests 默认生成以下几部分partlibs、examples、tools、tests这里就是告诉编译器不要生成tests这个part
-skip qtwebengine 跳过某个模块这里不编译qtwebengine它将非常耗时
-opensource 代表我们编译的是开源版本相应地-commercial代表商业许可的版本
-confirm-license 自动确认许可
-opengl dynamic 动态加载图形驱动官方推荐采用该方式具体看Qt for Windows - Requirements的Graphics Drivers一节
-openssl-runtime OPENSSL_INCDIRD:\openssl\vc16_x64\include 设置openssl也可以不填该参数我这里是动态链接的方式一共有动态链接显示加载、动态链接隐式加载、静态库3种方式具体见Qt for Windows - Requirements的Libraries一节configure完成后它会打印每个模块的情况也可以到源码目录下的config.summary文件中查看
Build type: win32-msvc (x86_64, CPU features: sse sse2)
Compiler: msvc 192930152
Configuration: sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c largefile precompile_header rdrnd rdseed shani x86SimdAlways shared shared debug_and_release release debug build_all c11 c14 c17 c1z concurrent dbus no-pkg-config release_tools stl
Build options:Mode ................................... debug and release; default link: debug; optimized toolsOptimize release build for size ........ noBuilding shared libraries .............. yesUsing C standard ....................... C89Using C standard ..................... C17Relocatable ............................ yesUsing precompiled headers .............. yesUsing LTCG ............................. noTarget compiler supports:SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2AVX .................................. AVX AVX2AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMIOther x86 ............................ AES F16C RDRAND SHABuild parts ............................ libs examples toolsApp store compliance ................... no
Qt modules and options:Qt Concurrent .......................... yesQt D-Bus ............................... yesQt D-Bus directly linked to libdbus .... noQt Gui ................................. yesQt Network ............................. yesQt Sql ................................. yesQt Testlib ............................. yesQt Widgets ............................. yesQt Xml ................................. yes...4、编译
jom -j20后面的-j20代表线程数因为我的CPU是i5-13500HX14核20线程 当然也可以使用nmake指令。不管是用jom还是nmake后续指令也要统一用对应的才行否则会报错 编译过程的CPU占用率 编译成功后是这样的
在我的机器i5-13500HX SSD PCIE4.0 7000MB/s上的耗时 70分钟
5、安装
jom -j20 install如果刚才是用nmake编译这里要用nmake install 它会将编译好的文件拷贝至configure中-prefix指定的目录下 在我的机器耗时60分钟
6、编译参考文档
jom docs如果刚才是用nmake编译这里要用nmake docs
7、安装参考文档
jom install_docs如果刚才是用nmake编译这里要用nmake install_docs
实测中间卡在sqldriver的地方很久ctrlc跳过 安装成功后运行designer打开“Qt设计师帮助”就可以看到参考文档如果第3步中打印了如下信息第6、7部都不会成功“Qt设计师帮助”里的内容为空
Qt Tools:QDoc ................................... noWARNING: QDOC will not be compiled, probably because libclang could not be located. This means theat you cannot build the Qt ducomentation.
...
On Windows, you must set LLVN_INSTALL_DIR to the installation path.
...