• 41667阅读
  • 286回复

[共享]共享一下自己编译的Qt吧 【6.7.0 / 6.5.3 / 6.2.7 / 5.15.13】 [复制链接]

上一主题 下一主题
离线海森堡

只看该作者 40楼 发表于: 2020-12-22
回 fsu0413 的帖子
fsu0413:说下关于Qt6的构建进度。
1. 在Windows上,我仅会构建VS2019(及以上)和MinGW版本,仅有64位。
-- VS2019已经编译通过,脚本已经搞定,已上传。
-- 现在MinGW版本有编译错误,已经报告给Qt官方。会在6.0.1中进行修复。脚本已经搞定,等待官方修复后会发布。
....... (2020-12-19 22:34) 

请问您的编译脚本哪里下载呢?我只下载到了一个巨大的.7z,里面没看到有相关的编译脚本呀,还请明示,谢谢。
离线fsu0413

只看该作者 41楼 发表于: 2020-12-22
回 海森堡 的帖子
海森堡:请问您的编译脚本哪里下载呢?我只下载到了一个巨大的.7z,里面没看到有相关的编译脚本呀,还请明示,谢谢。 (2020-12-22 20:27)

https://github.com/Fsu0413/Fs-scripts

我做过的所有的脚本都在这里了,不过我觉得对其他人可能用处不大,毕竟这些是基于我的环境定制的。
脚本的入口是 Compile/build.lua ,使用Lua 5.3和5.4都可以运行(5.1应该是不行的,5.2可能可以,没试过)。仅供参考。

离线hnwdx

只看该作者 42楼 发表于: 2021-01-20
在Windows上,VS2019,如何编译成功啊?不能够自动生成moc.exe文件,如何处理?
离线fsu0413

只看该作者 43楼 发表于: 2021-01-21
回 hnwdx 的帖子
hnwdx:在Windows上,VS2019,如何编译成功啊?不能够自动生成moc.exe文件,如何处理? (2021-01-20 17:44) 

没见过这个问题
离线liulin188

只看该作者 44楼 发表于: 2021-01-25
支持楼主
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线itworm

只看该作者 45楼 发表于: 2021-02-18
可惜了,5.15.1官方版本打开某些网页会白屏,不显示任何内容,楼主的编译版本也是一样。5.15.2官方版本没这个问题。但网上找不到编译好的5.15.2版本
离线fsu0413

只看该作者 46楼 发表于: 2021-02-19
回 itworm 的帖子
itworm:可惜了,5.15.1官方版本打开某些网页会白屏,不显示任何内容,楼主的编译版本也是一样。5.15.2官方版本没这个问题。但网上找不到编译好的5.15.2版本[表情] (2021-02-18 20:37)

5.15.2官方版本在VS2019 16.8版本编译不过啊

我看webengine的分支并没有关,5.15.3还在更新,等5.15.3发布之后我看看怎么用5.15.2的版本单独编webengine吧
(或者把5.15.3的webengine扔进5.15.2的Qt里编也行?)

3条评分好评度+1金钱+5威望+1
itworm 好评度 +1 谢谢,我会持续关注此贴。辛苦啦! 2021-02-20
itworm 威望 +1 谢谢,我会持续关注此贴。辛苦啦! 2021-02-20
itworm 金钱 +5 谢谢,我会持续关注此贴。辛苦啦! 2021-02-20
离线itworm

只看该作者 47楼 发表于: 2021-02-20
谢谢,我会持续关注此贴。辛苦啦!
离线alanexie

只看该作者 48楼 发表于: 2021-02-22
谢谢,我会持续关注此贴。辛苦啦!
离线hehui

只看该作者 49楼 发表于: 2021-03-08
优秀文章,支持!n神马都是浮云
离线fsu0413

只看该作者 50楼 发表于: 2021-03-09
5.15.2 with QtWebEngine 5.15.3已更新。
5条评分好评度+1贡献值+1金钱+20威望+1
nanjingqin 金钱 +10 - 2021-05-20
itworm 好评度 +1 太棒了!!! 2021-03-18
itworm 贡献值 +1 太棒了!!! 2021-03-18
itworm 威望 +1 太棒了!!! 2021-03-18
itworm 金钱 +10 太棒了!!! 2021-03-18
离线fsu0413

只看该作者 51楼 发表于: 2021-03-12
吐槽一下OpenSSL的构建系统。

OpenSSL从我接触开始到现在一直使用一个基于Perl的自制构建系统,而不是使用更通用的autoconf和CMake。在OpenSSL 1.1发布的时候他们甚至对这个构建系统进行了一次重构,但是依然使用Perl而不是CMake等更加通用的工具。
根据OpenSSL的FAQ上的说法,OpenSSL支持的平台广泛。autoconf和CMake均不能满足OpenSSL的要求。
不过说实话,我真的想不到CMake不能满足OpenSSL的理由。这货是现在第一大跨平台构建工具,对各种平台都有广泛的支持,只要有平台描述文件,有工具链,CMake就可以生成对应的Makefile了。平台描述文件基本上还都是构建者自己写或者工具链提供,工程本身不负责平台描述文件,给OpenSSL维护者省了不少活。CMake少数几个小缺点就是冷门平台非交叉构建的鸡生蛋问题,和本身需要C++支持,除此之外相当完美。
不使用autoconf倒是容易理解,因为这玩意的windows支持非常不友好。autoconf这个玩意出自GNU,而GNU这帮人对Windows普遍没有好感,所以Windows支持看起来根本没有好好做。如果要用MSVC的话,需要Cygwin或者msys2套件,并且进行很复杂的配置,相当折磨。

他自己的构建系统到现在依旧有很多问题。
1. 对于一个平台,仅通过Makefile模版支持一种构建工具,并且***不***接受任何其他构建工具相关的内容,哪怕这个其他构建工具是原构建工具的原位替代品。
一个典型的例子就是nmake和jom,明明添加一个编译器flag(/FS)就可以有限支持jom,可以使用多核CPU多进程编译加快构建速度,虽然可能因为依赖关系的原因会随机失败,不过就算是加入重试还是会比nmake这种单进程快很多,同时不用大幅度修改Makefile模版。
2. 迷惑的参数设置导致配置平台极其复杂,并且对于未知参数***没有***警告,甚至直接加入cflags和lflags中。主机构建也需要像交叉构建一样传入平台当参数
不解释,用过的都懂。
OpenSSL说在Unix-ish系统上可以使用./config进行主机构建,不过。。。在macOS上用过的都知道这货不能用,而且这货是Shell脚本,仅限于Unix-ish系统,Windows还是没辙。
autoconf和CMake都有标准的方法配置各种编译器和工程构建行为。autoconf甚至支持./configure --help输出工程文件支持的行为,极大的方便了工程的使用者。而OpenSSL的构建系统。。。。。“你看,我这个构建系统支持这么多平台,太NB了”
3. autoconf和CMake都有很多主业是C语言的程序员在用,受众比Perl要广
相比之下主业是C语言的程序员会用Perl的就要少很多了。

最后说一下OpenSSL在这个贴子里的构建版本的使用情况:
现在还在构建的使用OpenSSL 1.1系列的现在只有Windows的Qt 5.12版本和安卓的所有版本了。
Windows下Qt 5.13以上的版本使用SChannel进行构建,摆脱了对OpenSSL的依赖。SChannel在较新的Windows下已经支持TLS 1.3了,等Windows 21H2发布之后可以看看MSVC版本的Qt 6使用TLS 1.3的表现。
macOS下Qt 5.6以上的版本使用SecureTransport进行构建,摆脱了对OpenSSL的依赖。不过这货被苹果弃用了。等TLS 1.3成为主流之后,还要换回OpenSSL。
WebAssembly下没有OpenSSL支持,QLibrary的锅。
安卓没办法,自从心脏出血之后Google就决定不在安卓里自带OpenSSL了,而是换用了谷歌自己从OpenSSL fork出来的BoringSSL,与OpenSSL源码和二进制都不兼容,Qt在安卓上只用OpenSSL,所以还是要自己构建。

以前的版本:
Qt 5.6/5.9的Windows和安卓版使用OpenSSL 1.0.2u,macOS版使用SecureTransport。
Qt 4.8的Windows和macOS版使用OpenSSL 1.0.2u。
OpenSSL 1.0.2系列构建系统不支持shadow build,源码不支持64位安卓,和1.1系列源码和二进制不兼容,已经被淘汰了。而且在Windows上构建使用的makefile都特立独行,像后妈一样。。。。
离线lixinwei

只看该作者 52楼 发表于: 2021-03-14
楼主能否把附加模块也编译一下?
附加模块的源代码不包含在qt-everywhere-src-*.*.*.zip中,需要另外下载(https://download.qt.io/online/qtsdkrepository/windows_x86/addons/

在Qt 6.0中,附加模块有qt3d qtimageformats qtnetworkauth
在Qt 6.1中,附加模块还会新增qtactiveqt qtcharts qtdatavis3d qtlottie qtscxml qtvirtualkeyboard
这些附加模块中有一些是比较常用的
离线fsu0413

只看该作者 53楼 发表于: 2021-03-14
回 lixinwei 的帖子
lixinwei:楼主能否把附加模块也编译一下?
附加模块的源代码不包含在qt-everywhere-src-*.*.*.zip中,需要另外下载(https://download.qt.io/online/qtsdkrepository/windows_x86/addons/)
在Qt 6.0中,附加模块有qt3d qtimageformats qtnetworkauth
在Qt 6.1中,附加模块还会新增qtacti .. (2021-03-14 16:20) 

等下一次编译再说吧 我先下载下来
https://download.qt.io/official_releases/additional_libraries/6.0/6.0.2/
离线fsu0413

只看该作者 54楼 发表于: 2021-03-15
回 lixinwei 的帖子
lixinwei:楼主能否把附加模块也编译一下?
附加模块的源代码不包含在qt-everywhere-src-*.*.*.zip中,需要另外下载(https://download.qt.io/online/qtsdkrepository/windows_x86/addons/)
在Qt 6.0中,附加模块有qt3d qtimageformats qtnetworkauth
在Qt 6.1中,附加模块还会新增qtacti .. (2021-03-14 16:20) 

编译上传完了
离线itworm

只看该作者 55楼 发表于: 2021-03-18
支持楼主,太棒了!!!
离线XChinux

只看该作者 56楼 发表于: 2021-04-09
用的楼主的Qt5.15.2 msvc2019版本,
自己写的一个程序,在QML中用WebView加载网页播放MP4视频,结果使用windeployqt发布后,就是显示不了网页,最后经过不断试验,发现下面的方式可以解决:

假设可执行程序在D:\myapp\app目录下,则在D:\myapp\app目录下执行windeployqt后,会自动将运行所需要的.exe、.dll及插件、qml组件等复制到app目录下,然后:


  1. mkdir D:\myapp\lib
  2. copy QTDIR\lib\Qt5Core.lib  D:\myapp\lib\Qt5Core.lib
  3. mkdir D:\myapp\plugins
  4. mkdir D:\myapp\plugins\webview
  5. copy QTDIR\plugins\webview\qtwebview_webengine.dll D:\myapp\plugins\webview\
  6. mkdir D:\myapp\resources
  7. copy QTDIR\resources\*   D:\myapp\resources\




经过以上处理,就可以正常WebView显示网页播放视频了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线fsu0413

只看该作者 57楼 发表于: 2021-04-09
回 XChinux 的帖子
XChinux:用的楼主的Qt5.15.2 msvc2019版本,
自己写的一个程序,在QML中用WebView加载网页播放MP4视频,结果使用windeployqt发布后,就是显示不了网页,最后经过不断试验,发现下面的方式可以解决:
假设可执行程序在D:\myapp\app目录下,则在D:\myapp\app目录下执行windeployqt后,会自动 .. (2021-04-09 19:20)

我觉得像是windeployqt的问题。。。
(由于这个repository为原版Qt编译,我不会给Qt打任何patch,可能会一直是这个动作了)

Edit 2022/3/11 我自己打脸了,不过由于是Qt官方发布的Security patch,所以
Qt 5.12系列已经没有官方更新了,无奈只好自己打了
Qt 5.15 / 6.2系列等应用官方更新还得一年的时间,这时间太久远了就自己先弄了

离线XChinux

只看该作者 58楼 发表于: 2021-04-12
之前用Qt 5.12.8的时候使用windeployqt还是正常的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线fsu0413

只看该作者 59楼 发表于: 2021-04-14
回 XChinux 的帖子
XChinux:之前用Qt 5.12.8的时候使用windeployqt还是正常的。 (2021-04-12 13:01) 

不过我重新编译的这个5.15.2的webengine是5.15.3的,版本对不上
离线fsu0413

只看该作者 60楼 发表于: 2021-05-07
回 lixinwei 的帖子
lixinwei:楼主能否把附加模块也编译一下?
附加模块的源代码不包含在qt-everywhere-src-*.*.*.zip中,需要另外下载(https://download.qt.io/online/qtsdkrepository/windows_x86/addons/)
在Qt 6.0中,附加模块有qt3d qtimageformats qtnetworkauth
在Qt 6.1中,附加模块还会新增qtacti .. (2021-03-14 16:20) 

这次的6.1把附加模块的源码也直接放进来了,不用单独下载了
离线lsnbing

只看该作者 61楼 发表于: 2021-05-08
请教一下,我的项目是用cmake构建的,在设置QTDIR时不能识别相关的qt库路径,请问怎么解决
本帖提到的人: @fsu0413
离线fsu0413

只看该作者 62楼 发表于: 2021-05-09
回 lsnbing 的帖子
lsnbing:请教一下,我的项目是用cmake构建的,在设置QTDIR时不能识别相关的qt库路径,请问怎么解决 (2021-05-08 19:58) 

用CMAKE_PREFIX_PATH 参考QtCreator的实现方式
离线lixinwei

只看该作者 63楼 发表于: 2021-05-13
楼主将webengine更新到了5.15.4版本,点赞!
离线fsu0413

只看该作者 64楼 发表于: 2021-05-15
回 lixinwei 的帖子
lixinwei:楼主将webengine更新到了5.15.4版本,点赞! (2021-05-13 19:31) 

忘了改标题了
离线nanjingqin

只看该作者 65楼 发表于: 2021-05-15
楼主,怎么不是官方安装包那种,解压完带有qtcreator。。。。直接使用就可以了
离线fsu0413

只看该作者 66楼 发表于: 2021-05-18
回 nanjingqin 的帖子
nanjingqin:楼主,怎么不是官方安装包那种,解压完带有qtcreator。。。。直接使用就可以了 (2021-05-15 23:39) 

我不想做,也没人花钱让我做,我就没做。
离线nanjingqin

只看该作者 67楼 发表于: 2021-05-20
顶楼主
离线hdcscy

只看该作者 68楼 发表于: 2021-06-02
楼主真的是太棒了,太热心肠了,解决了我的燃眉之急,自己编译总是出现各种各样的问题。
目前我只有5.9.9的webengine编译过了,为了支持mp4播放。但可惜chromium内核版本太低,仍然不符合需求。
借此我有个疑问想请教下楼主,5.9.9可以用5.15.4的webengine吗?我这边试了下,貌似5.15.4的dll导出表相比之前有变动,提示“无法定位程序输入点于动态链接库上”。
离线fsu0413

只看该作者 69楼 发表于: 2021-06-05
回 hdcscy 的帖子
hdcscy:楼主真的是太棒了,太热心肠了,解决了我的燃眉之急,自己编译总是出现各种各样的问题。
目前我只有5.9.9的webengine编译过了,为了支持mp4播放。但可惜chromium内核版本太低,仍然不符合需求。
借此我有个疑问想请教下楼主,5.9.9可以用5.15.4的webengine吗?我这边试了下,貌似5 .. (2021-06-02 08:41) 

我没试过这种跨大版本的,我觉得可能会有问题
Qt库之间大量使用私有API,而因为关联的库改私有API是常事。。。
离线clickto

只看该作者 70楼 发表于: 2021-06-09
大神有没有考虑过换一个网盘之类的想法?说实话,您提供的两个地址,我一次都没有下下来过。。。
离线fsu0413

只看该作者 71楼 发表于: 2021-06-11
回 clickto 的帖子
clickto:大神有没有考虑过换一个网盘之类的想法?说实话,您提供的两个地址,我一次都没有下下来过。。。 (2021-06-09 22:07) 

不考虑,原因之一是不能免费外链。

关于我这两个地址:共同的问题是没有国内镜像,不过由于提供免费带外链的文件共享服务,成为了我的优先选择。

之前还做过一段时间的OSDN的地址,也是免费带外链,不过OSDN的问题是上传文件体验比较差,需要用某种方式上网才能可以顺利上传文件,不过由于有国内镜像所以下载还是速度比较快的。没有选择OSDN是因为我嫌这种上网比较麻烦。
如果可以有人资助的话,我可以做付费的COS镜像。像我之前用过的腾讯云,服务器在国内,而且上传体验也不错,速度也有保证。

至于那些推荐XXX网盘的就不要来了,戒了。
离线reborntercel

只看该作者 72楼 发表于: 2021-07-23
请问一下,使用静态的5.12.2编译的程序,能不能动态加载WebEngine库???

只看该作者 73楼 发表于: 2021-07-24
为什么不编译debug版本呢,没法断点调试啊
离线lixinwei

只看该作者 74楼 发表于: 2021-07-24
请问楼主,您当时把qtwebengine和qtwebengine-chromium的repository 下载下来花了多长时间?
离线fsu0413

只看该作者 75楼 发表于: 2021-07-28
回 reborntercel 的帖子
reborntercel:请问一下,使用静态的5.12.2编译的程序,能不能动态加载WebEngine库??? (2021-07-23 11:13) 

怎么动态加载 我没试过
离线fsu0413

只看该作者 76楼 发表于: 2021-07-29
回 旅行者1号 的帖子
旅行者1号:为什么不编译debug版本呢,没法断点调试啊 (2021-07-24 02:53) 

我的版本就没有debug版,主要是为了size
离线fsu0413

只看该作者 77楼 发表于: 2021-07-29
回 lixinwei 的帖子
lixinwei:请问楼主,您当时把qtwebengine和qtwebengine-chromium的repository 下载下来花了多长时间?
 (2021-07-24 12:12) 

我下崽的时候很快,有可能是因为我是科学上网下崽的
离线fsu0413

只看该作者 78楼 发表于: 2021-09-29
更新6.2.0。
这次的更新问题很多很多很多很多很多。。。。。
MinGW 动态版和Windows hosted Android因CMake问题编译不过
VS2019 静态版因internal compiler error编译不过
Linux和macOS倒是挺顺利,不过Windows是大头啊。。。。。。。。。嘤嘤嘤
离线fsu0413

只看该作者 79楼 发表于: 2021-10-03
更新6.2.0正式版。
楼上提到的诸多问题还是没解决。静等6.2.1吧。。。。。。。。
快速回复
限100 字节
 
上一个 下一个