背景
- 由于QT自带的QtWebEngine模块不支持音视频的播放,如果想播放MP3、MP4等格式的文件,必须自己编译QtWebEngine。
- 本文编译的QT版本为5.12.4,VS版本为2017。QT安装路径为C:\Qt\Qt5.12.4\5.12.4\msvc2017_64
- 本文默认编译的是64位版本QtWebEngine,32位版本暂不考虑
- 参考文章:How to compile Qt webengine (5.11) on Windows with proprietary codecs
具体编译步骤
安装Python
- 本地先安装Python(>=2.7.x)并确保添加到了环境变量中(网上说不支持3.0以后的版本,所以选择安装了2.7版本)
添加第三方工具路径到系统环境变量
- 编译过程中需要用的一些第三方工具。由于QT已经自带了,所以这里直接把所在目录添加到了系统环境变量里。
- C:\Qt\Qt5.12.4\5.12.4\Src\gnuwin32\bin
- C:\Qt\Qt5.12.4\5.12.4\Src\gnuwin32\bin
设置VS 64位编译环境
- 切换路径到:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build 并运行64位环境的批处理工具
- cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\
- vcvars64.bat
添加qt可执行程序目录到系统环境变量
- 将qt的可执行程序目录(如C:\Qt\Qt5.12.4\5.12.4\msvc2017_64\bin)添加到环境变量方便接下来操作
打开vs命令行工具
- 在开始菜单中找到VS2017的菜单目录,以管理员权限打开"适用于VS 2017的x64本机工具命令提示
切换到qtwebengine的源码目录
- vs命令行工具切换到qtwebengine的源码目录
- cd C:\Qt\Qt5.12.4\5.12.4\Src\qtwebengine
修改qtwebengine的编译选项
- 修改qtwebengine的编译选项以支持音视频的播放
- 在命令行工具输入:qmake WEBENGINE_CONFIG+=use_proprietary_codecs
- 若编译成功,则会提示"nmake"
- 这里我编译失败,提示如下
- 解决方法:如果本机安装有多个QT版本,则先将其它版本的QT重命名,否则会调用其它QT路径下的qmake,造成不确定的问题。
- 我在这一步卡了好久,一直没有找到原因。后来无意中查看了编译过程中生成的缓存文件,发现命令行工具调用的是我其它QT版本下的qmake.exe,这肯定是不对的。估计是因为其它版本的路径在系统变量中的位置比较靠前,所以先调用其它版本下的QT。找到原因,立即就把其它版本的QT进行了重命名,保证调用模板版本下的qmake。待编译完成后再改回来就是。
执行nmake
- nmake release (仅编译release版本)。如果release和debug一起编译,则执行 nmake
- 这里我第一次等待了5个小时后提示我编译失败,如图所示:
- 网上参考了同样编译失败的资料,怀疑是没有将语言设置为英语、区域设置为美国,具体设置如下