• 928阅读
  • 3回复

[讨论]QT6.4.1 源码静态编译若干问题求助! [复制链接]

上一主题 下一主题
离线leotao
 

只看楼主 倒序阅读 楼主  发表于: 2022-11-18
各位同学你们好, 我参考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 中还需要哪些设置?


本帖提到的人: @fsu0413
在线lixinwei

只看该作者 1楼 发表于: 2022-11-18
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,需要运行我上面提到的命令来正确地安装

离线fsu0413

只看该作者 2楼 发表于: 2022-11-19
楼上都回答了,我就不掺和了。。而且我不用debug版的
而且Qt 6之后我不用configure,都是直接用CMake程序的
离线leotao

只看该作者 3楼 发表于: 2022-11-25
非常感谢楼上的兄弟
快速回复
限100 字节
 
上一个 下一个