一、代码下载
https://download.qt.io/new_archive/qt/
二、编译基础知识
1.展开开始菜单Visual Studio 2017目录->Visual Studio Tools->x86_x64 Cross Tools Command Prompt for VS 2017命令行,cd到qt-everywhere-opensource-src-5.6.3目录,执行如下命令:
直接执行configure.bat会进行一个大概的设置!
2.参与下面的地址可以查看相关参数,尽量对参数进行简化,把不必要的去掉
https://blog.csdn.net/weixin_40913278/article/details/116273305
https://blog.csdn.net/qq_36685978/article/details/79474928
三、静态编译
configure -confirm-license -opensource -platform win32-msvc2017 -debug-and-release -static -static-runtime -force-debug-info -nomake tests -no-compile-examples -nomake examples -mp -prefix "../../qt5.6.3_msvc2017_x86_static"
执行完上面的后执行nmake(会有提示)
接着再执行nmake install
大概就这么个步骤!
四、动态编译
动态编译与静态编译区别为去掉两个-static的参数就行
configure -confirm-license -opensource -platform win32-msvc2017 -debug-and-release -shared -force-debug-info -nomake tests -no-compile-examples -nomake examples -mp -prefix "../../qt5.6.3_msvc2017_x86_shared"
补充说明
注意事项:如果你的源码已经编译成静态链接库一次,就不要把那个源码尝试编译动态链接库,你需要重新解压原来下载的包,然后用下载的包进行编译!
注意要安装对应的SDK与生成工具,比如win32-msvc2017就要有对应的msvc2017sdk与生成工具,另外在编译时,发现需要python,在vs2022(你对应的生成版本)命令行(中执行python命令会弹出下载地址)
异常:Invalid Qt versions: * qmake error: no value for QT_INSTALL_PREFIX/src
处理方案:在qmake.exe同一文件夹下,创建一个qt.conf文件(ANSI格式),内容为
[paths]
Prefix = ..
异常:无法解析的外部符号 std_find_trivial_
处理方案:在编译qt源码时,-platform win32-msvc2017参数与编译工具不对应,所以win32-msvc2017应该用2017生成工具生成,如果用2022生成则会出现类似问题
欢迎加入QQ群64181011一起讨论!