• 24580阅读
  • 211回复

[共享]共享一下自己编译的Qt吧 【5.15.8 / 6.4.2 已更新】 [复制链接]

上一主题 下一主题
在线fsu0413

只看该作者 200楼 发表于: 01-14
回 aivyna 的帖子
aivyna:Qt Creator 9.0.1 (Community)手动添加6.2.4 Dynamic & Shared Builds会报错,Qt6.2.4-Windows-x86_64-MinGWxx.x.x 报错
[图片]
[图片]
[图片]
....... (2023-01-14 00:38) 

动态的版本需要配合MinGW的库才能用,需要在我提供的地址下载对应的MinGW,把里面的dll复制到Qt库中

静态的我自己平时从来不用,等我有时间试试
我这边看relocatable属性都是开着的,因为Qt默认不在静态上开启relocatable功能,有可能是relocatable本身的问题
在线aivyna

只看该作者 201楼 发表于: 01-14
回 fsu0413 的帖子

动态的版本需要配合MinGW的库才能用,需要在我提供的地址下载对应的MinGW,把里面的dll复制到Qt库中


这个方法官方或者哪里有说明需要复制哪些dll么?我试了同样是大佬你发布的5.15以及5.12的动态版本,事先不需要复制mingw的DLL,直接手动到qt versions那不会报错并且可用.
谷歌了大部分的教程都是直接找到qmake.exe即可,除了有可能会发生那个qt没有正确安装问题需要处理.


在线fsu0413

只看该作者 202楼 发表于: 01-14
回 aivyna 的帖子
aivyna:这个方法官方或者哪里有说明需要复制哪些dll么?我试了同样是大佬你发布的5.15以及5.12的动态版本,事先不需要复制mingw的DLL,直接手动到qt versions那不会报错并且可用.
谷歌了大部分的教程都是直接找到qmake.exe即可,除了有可能会发生那个qt没有正确安装问题需要处理.
....... (2023-01-14 22:34) 

5.15 和 5.12 也得复制DLL。不需要复制DLL可能是环境变量里有它兼容的MinGW,比如 strawberry perl的默认安装愿意干这种事
https://github.com/StrawberryPerl/Perl-Dist-Strawberry/issues/11
需要复制的DLL是 MinGW 下面 bin目录下的那些dll,一般只需要 libstdc++ libgcc 和 libwinpthread开头的这三个,但是以防万一最好全复制

Qt 没有正确安装这个,还是我先查查吧。。。。
Qt本身也不测试静态+relocatable的用例,可能还是到最后得我们用户来贡献。。。。
在线aivyna

只看该作者 203楼 发表于: 01-15
回 fsu0413 的帖子

5.15 和 5.12 也得复制DLL。不需要复制DLL可能是环境变量里有它兼容的MinGW,比如 strawberry perl的默认安装愿意干这种事



动态的版本需要配合MinGW的库才能用,需要在我提供的地址下载对应的MinGW,把里面的dll复制到Qt库中



全新安装了个win10 22h2反复测试了一下, 然后只安装qt-creator-opensource-windows-x86_64-9.0.1.exe,测试Qt Creator 9.0.1构建套件(Kit)设置:

1.编译器里手动添加x86_64-8.1.0-release-posix-seh-rt_v6-rev0的gcc和g++,然后Qt版本里添加Qt5.15.8-Windows-x86_64-MinGW8.1.0-20230108的qmake.exe不提示缺DLL,不报错且构建套件能正常使用.

2编译器里手动添加x86_64-12.1.0-release-posix-seh-rt_v10-rev0的gcc和g++,然后Qt版本里添加Qt6.2.4-Windows-x86_64-MinGW12.1.0-20230107的qmake.exe报错缺失DLL,需要手动复制DLL后构建套件才能正常使用.
在线fsu0413

只看该作者 204楼 发表于: 01-15
回 aivyna 的帖子
aivyna:全新安装了个win10 22h2反复测试了一下, 然后只安装qt-creator-opensource-windows-x86_64-9.0.1.exe,测试Qt Creator 9.0.1构建套件(Kit)设置:
....... (2023-01-15 05:06) 

啊 我刚看了下,qmake在 Qt 5 的时候是静态的,无论怎么编译 qmake一直是静态的,不会缺DLL。
你可以试试用这个构建一下Qt项目,如果找不到dll的话,可能uic moc等工具还是不能用。
或者也可以双击一下里面的uic moc等工具看看是不是缺dll

我在考虑要不要在打包之前把这些DLL直接打进去。。。。
要不然太麻烦了
在线fsu0413

只看该作者 205楼 发表于: 01-15
或者是Qt Creator把 MinGW 8.1.0的路径加入PATH了所以不报缺DLL。。。。。
如果是这样的话,也可以换用命令行 qmake试试
在线aivyna

只看该作者 206楼 发表于: 01-15
回 fsu0413 的帖子

或者也可以双击一下里面的uic moc等工具看看是不是缺dll


刚又试验了一下,,5.15.8也的确如大佬你说的只是qmake.exe能直接用,uic.exe和moc.exe还是会提示缺DLL的
在线fsu0413

只看该作者 207楼 发表于: 01-15
Qt 没有被正确安装这个是Qt 6.2.4 附带的qmake的bug。
我这边有一个 Qt 6.4的静态版,没有这个问题。

由于我这边Qt LTS以外版本的静态版只用来做交叉构建的host tool的,没有提供打包。
如果 Qt 6.5是LTS版本的话,到时候我会提供Qt 6.5的静态构建版。
在线fsu0413

只看该作者 208楼 发表于: 01-16
6.5.0-beta1 我下载了一版 本地构建各种失败。。。。。。
等beta2或者rc吧,暂时先不报qtbug了,看tQtC能改多少
在线fsu0413

只看该作者 209楼 发表于: 01-17
Qt 6.5.0-beta1 分发了一个组件叫做 QtGRpc
这个组件在 code.qt.io 上没有源代码,只有下载下来的这些东西能看到

这个组件里面有个 qtprotobufgen 的 tools,我这边暂时简单调了一下,没编出来,应该是依赖一个protobuf的库我没有附带导致的。
考虑到这个组件还比较新,可能里面有些问题连tQtC也没搞明白,所以这版我就先不编这个玩意了,等之后找个时间再看看。

顺便这版有莫名其妙的 rcc 执行连报错都没有就退出的现象,只有windows版有这个现象,linux和mac都没有,所以windows版基本都没编过。。。。。。
离线lixinwei

只看该作者 210楼 发表于: 01-18
回 fsu0413 的帖子
fsu0413:
Qt 没有被正确安装这个是Qt 6.2.4 附带的qmake的bug。
我这边有一个 Qt 6.4的静态版,没有这个问题。
由于我这边Qt LTS以外版本的静态版只用来做交叉构建的host tool的,没有提供打包。
如果 Qt 6.5是LTS版本的话,到时候我会提供Qt 6.5的静态构建版。


https://bugreports.qt.io/browse/QTBUG-102877
qmake的bug可以通过qt.conf来解决:
  1. [Paths]
  2. Prefix=..
  3. HostPrefix=..

Prefix和HostPrefix都需要设置
在线fsu0413

只看该作者 211楼 发表于: 01-25
回 fsu0413 的帖子
fsu0413:Qt 6.5.0-beta1 分发了一个组件叫做 QtGRpc
这个组件在 code.qt.io 上没有源代码,只有下载下来的这些东西能看到
这个组件里面有个 qtprotobufgen 的 tools,我这边暂时简单调了一下,没编出来,应该是依赖一个protobuf的库我没有附带导致的。
考虑到这个组件还比较新,可能里面 .. (2023-01-17 21:24) 

rcc连报错都没有就退出的问题是因为QtCore从6.5开始link到openssl导致的。
由于此前我并没有将openssl的dll/lib添加到path,使得运行时找不到openssl的dll导致报错。

在Qt5之前Qt构建过程中使用的所有组件都不依赖OpenSSL,可能是因为他们不使用QtNetwork的原因。
快速回复
限100 字节
 
上一个 下一个