win10+VS2019+QT 5.14.2 QWebEngine编译HTML5 MP4支持(-- -webengine-proprietary-code),疑难问题解决

编译方案网上都有,这是stackoverflow上最详尽的一篇:https://stackoverflow.com/questions/50510457/how-to-compile-qt-webengine-5-11-on-windows-with-proprietary-codecs/50510458#50510458

作者用的是VS2017,用VS2019的对应命令行也支持的!

 

我是编译的64位支持,编译结果:占用空间117G,所以需要有大硬盘空间,内存峰值占用11G

CPU:i7-4790K,加上解决问题,耗费了10个小时,估计一切顺利的话,6个小时差不多,好CPU的话会更快

碰到的疑难问题:

1. win10系统,运行D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\qmake.exe -- -webengine-proprietary-codecs,报告需要Windows SDK version 10.0.18362 or newer,webengine将不会built

因为未知原因,win10 SDK 18362一直安装失败,从另外一台安装成功的机器上,把C:\Program Files (x86)\Windows Kits\10打包放到问题机同样目录,好了,VS编译里能认出了,因为虽然安装失败,但是注册表信息已经有了,所以拷贝文件的方法可行!

但是,上述qmake命令仍然报告找不到SDK,于是发现Src\qtwebengine下configure.pri会检测WindowsSDKVersion,看代码,以为是系统环境变量,

qtwebengine_isMinWinSDKVersion) {
    requested_major = $$1
    requested_minor = $$2
    WIN_SDK_VERSION = $$(WindowsSDKVersion)

    isEmpty(WIN_SDK_VERSION)|equals(WIN_SDK_VERSION, "\\") {
        qtwebengine_platformError("Could not detect Windows SDK version (\'WindowsSDKVersion\' environment variable is not set).")
        return(false)
    }

其实是vs命令行的环境变量,输入;set可以看到:

已经有了,问题在于QT仍然不认识,即使改了configure.pri,强制返回True。

想到是不是QT安装时检测的,于是把QT 5.14.2带源码重新安装,OK了!

2. 空间不够了,导致Src\qtwebengine\src\core\release\obj\services\tracing下lib_cc.pdb生成残缺,报告找不到此文件。

解决:删除此目录lib下和lib_cc.pdb日期相近的.obj文件,估计也可以删除所有.obj文件,重新运行"D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.25.28610\bin\Hostx64\x64\nmake.exe",会重新生成完整的对应文件

3. 未找到PDB“qtmain.pdb”(使用“qtmain.lib(qtmain_win.obj)正在链接对象,如同没有调试信息一样
解决:定位到Src\qtbase\src\winmain,用QT 5.14.2打开,项目配置选择MSV2017 64bit,点构建,可以看到qtmain.pdb在msvc2017_64\lib\下,生成了应该不用再做什么,问题能解决

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值