Windows,VS2017+Qt5.13.2自编译QWebEngine库详细教程,可播放直播,亲测可用
本人只编译了64位。32位的过程相同,下面也会介绍,大家请耐心看完,一定可以成功的。
最下方附带下载链接(编译完之后的Qt完整的库msvc2017_64+编译过程中需要安装的插件+博主写的小测试项目)。
最下方下载链接中包含编译需要的工具:VS2017安装包、Python 2、Perl、Bison and flex、Gperf;
下方教程中也会附带下载链接。
引言
最近公司的一个项目涉及到内嵌浏览器,同时要可以播放直播链接里的视频,qt自带的QWebEngine库显然是不支持的:
- 无论怎么调用,设置QWebEngineView的接口和参数,都无法播放视频;
- 还有的博客说需要下载Flash插件,经过测试,同样不可以,把flash的dll放到软件运行目录以及Plugin目录下面均无效;
- 想要在不重编的情况下实现,基本不可能了,有方法的同学也欢迎指正哦。
- 博主因为用公司电脑编译的,比较快,用了三个小时,空间需要大概120G,准备编译的同学请预留足够的空间,空间不够导致编译失败的话就要后悔死了。
编译历程
上图是博主用编译完的库写的一个小测试截图。
踩坑历程
- VS版本问题,博主用VS的是2022,所以一开始打算用2022编,都失败了,但是博主还是觉得2022可以编,可能是因为一开始博主直接用的qt源代码里自带的插件,所以失败了,时间又不允许继续尝试了,所以博主下载了2017来编译。下面的下载链接里也包含vs2017的安装包。
- 编译过程中有显示ninja版本过旧,于是博主就直接用的qt源码里的ninja,不知道版本过旧会不会影响编译,有同样问题的同学可以尝试一下。下方是qt源码中ninja的路径。
- 还有下列问题,一开始用vs2022编译的时候始终会有这个错误,看了几篇博客说是英文问题,需要将电脑系统语言设置成英文,但是设置之后用vs2022还是会出现,最后用vs2017倒没有再出现。下方教程里会有博主当时的设置,供你们借鉴。
编译教程
博主不敢保证每一步都是有用的,因为当时编译的时候尝试了N多次,最后只能是以当时成功的时候的设置为准。就靠你们自己把握了。
-
准备工作
备份源码和msvc2017_64文件夹。 如果错了还可以替换重来,因为你不知道编译的时候哪些文件是改动过的,还是新生成的,没办法判断哪个可以删不可以删,所以提前备份。如果你知道错了之后要删掉哪个并且不会影响下次编译,就当我没说。
(1) 安装Qt5.13.2及源码下载,qt官网下载一下5.13.2安装包。画线部分是必须要选的,如果打算用vs2015编译,也可以选择对应的尝试一下,Sources部分即是qt源码部分。如果要生成32位库,需要选择对应的选项。
(2) Visual studio 2017
微软官网下载
个人感觉画圈的几个部分是需要安装的,其他的随意选择,其中Windows 10 SDK不一定非要选择图中画圈的版本 ,Windows 10 SDK(10.0.xxxxx.x) 均可。
(3) 其他工具下载安装
Python2
Perl (Strawberry vesion)
Bison and flex
Gperf
以上几个工具安装之后都需要配置环境变量,不知道怎么配置的同学可以百度一下,这里就不介绍了。
(4) 系统语言设置
这一步博主感觉不是必要的,你们可以测试一下,如果出现了我上述踩坑记录中的英文问题,再设置也可以。下图是博主编译时的设置:所有的地方都设置成了英文,如果这样设置还有问题,那就要把VS2017的语言也改成英文。
-
开始编译
如果想要编译64位,就要选择红线圈的,也就是博主选的;绿线圈的是用来在64位机上生成32位库的,想要32位库,就选绿色的。要生成32位的库,qt安装的时候也要选择32位。
运行的人时候要选择以管理员身份运行
(1) 转到QWebEngine源码所在目录,输入qmake -- -webengine-proprietary-codecs
运行
结果(网上找的图):
(2) 接下来输入nmake
运行,就开始编译了,网上都说要编译五六个小时,主要看电脑性能,博主用了大概三个小时。空间要预留足够,大概120G,只能多不能少。(3) 编译完成之后,输入
nmake install
运行,会自动将你编译好的库和有用的文件拷贝到msvc2017_64目录中,直接可供使用。 所以备份很重要,错了可以快速替换重来。 -
编译完成就可以直接使用了。
有遗漏或者不正确的地方欢迎指正。
不经常有时间看博客评论,大家谅解一下。