标题:QT6.4.1 源码静态编译若干问题求助!
作者:leotao
日期:2022-11-18 09:08
内容:
各位同学你们好, 我参考CSDN上的帖子对QT6.4.1 源码进行了编译, 配置和编译和安装都比较顺利,但遇到了以下几个问题。
源码下载,工具链安装,配置,编译,安装的过程我就简述了。
1、 在官网下载 qt-everywhere-src-6.4.1.zip
2、准备工具链,VS2019 Build tools ,把C++可选的部分都打勾,否则编译到 altbase.h的时候就出错了,把语言选成英文,否则编译的时候会出现满屏的注意:头文件xxxxxxxx 提示。
3、配置,在d:\qt\6.4.1\build 目录下 执行
set path=d:\qt\6.4.1\build\qtbase\bin;%PATH%
..\src\configure.bat -static -static-runtime -debug-and-release -optimize-size -prefix "d:\qt\6.4.1\msvc_2019_staic" -platform win32-msvc
配置完成后开始编译
4、 cmake --build.即可,parallel 参数可选,默认会开多进程编译,我的机器上最多会有12个 cl.exe 进程, 大约一个多小时就编译完成了。
5、cmake --install . 很快也完成了安装。
-----------------------------------------------
到这里,看起来一切正常,但我发现了几个问题:
1、编译的时候,在 d:\qt\6.4.1\build\qtbase\lib 目录中是生成了 debug 的lib, 但cmake --install 的时候, debug 的库并没有拷贝到安装目录d:\qt\6.4.1\msvc_2019_staic,只有release的库,这个是为什么?
需要我手工把debug 的库拷贝过去
2、创建一个测试的项目,最简单的那种,无论选择 Debug 模式还是 Release 模式,都是链接 qt6core.lib,不知有没有人遇到? CMAKE 中还需要哪些设置?
#1 [lixinwei 11-18 22:36]
1、编译的时候,在 d:\qt\6.4.1\build\qtbase\lib 目录中是生成了 debug 的lib, 但cmake --install 的时候, debug 的库并没有拷贝到安装目录d:\qt\6.4.1\msvc_2019_staic,只有release的库,这个是为什么?
需要我手工把debug 的库拷贝过去这是cmake的一个已知bug,用ninja install 或者 cmake --install . --config Release && cmake --install . --config Debug
2、创建一个测试的项目,最简单的那种,无论选择 Debug 模式还是 Release 模式,都是链接 qt6core.lib,不知有没有人遇到? CMAKE 中还需要哪些设置?如果你只拷贝了debug的lib,没有把Qt6CoreTargets-debug.cmake之类的文件拷贝到相应的目录,cmake无法找到debug库,只能链接到Qt6Core.lib,需要运行我上面提到的命令来正确地安装
#2 [fsu0413 11-19 07:14]
楼上都回答了,我就不掺和了。。而且我不用debug版的
而且Qt 6之后我不用configure,都是直接用CMake程序的
#3 [leotao 11-25 07:58]
非常感谢楼上的兄弟