由于 Qt5 自带的 WebEngine 默认不支持 MP3、MP4 格式的多媒体文件,如果想要开启播放 MP3、MP4 的功能,则需要编译 Qt WebEngine 。

这篇教程将演示如何在 Qt5.9 和 Qt5.11 上编译 Qt WebEngine。

编译需求

在所有平台上,都需要以下工具:

  • Qt 源码 和 Qt WebEngine 模块源码,至少需要安装 MSVC 2015 32-bitMSVC 2015 64-bitMSVC 2017 64-bitSourcesQt WebEngine 模块。
  • Python 2.7.5 或更高版本,不支持 Python 3
  • Bison,Flex
  • GPerf
  • Perl (Strawberry vesion) from http://strawberryperl.com/

在 Windows 平台上,需要 Visual Studio 2015 或 2017,和 Windows 10 SDK。

确保 Perl,Python,Bison,Flex,GPerf 在环境变量中。

编译 Qt WebEngine

注意:Qt WebEngine 模块不支持静态编译。

打开 cmd.exe(使用管理员权限)或 VS 2017 命令提示符工具。

输入 cd + Microsoft Visual Studio 中 vcvarsall.bat 工具所在的文件夹:

cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build"


编译 32 位:

在命令行中输入 vcvars32.bat

编译 64 位:

在命令行中输入 vcvars64.bat


进入 qtwebengine 源码所在的文件夹

cd "C:\Qt\5.11.0\Src\qtwebengine"

编译 32 位:

在命令行中输入 "C:\Qt\5.11.0\msvc2015\bin\qmake.exe" -- -webengine-proprietary-codecs (注意:这里将编译2015 32位版本的 Qt WebEngine)


编译 64 位:

在命令行中输入 "C:\Qt\5.11.0\msvc2017_64\bin\qmake.exe" -- -webengine-proprietary-codecs (注意:这里将编译2015 64位版本的 Qt WebEngine)

如果是 Qt 5.9 则命令为: qmake.exe -- -proprietary-codecs

执行完成后,控制台的输出如下:

webengine_cmd.png


最后执行 nmake。输入 "Path to nmake.exe for version 32 bit or 64 bit" :

编译 32 位:

在命令行中输入 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx86\x86\nmake.exe"

编译 64 位:

在命令行中输入 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\nmake.exe"

接下来就是漫长的编译时间了。


执行 nmake install 将编译出来的库文件安装到指定位置。

常见错误

如果编译过程出现下列错误:

ninja: build stopped: subcommand failed. NMAKE : fatal error U1077: 'call' : return code '0x1' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX64\x64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: '(' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop 

则将系统语言改为英文即可,也可以将出现问题的文件编码方式改为 “UTF-8 With BOM” 。

标签: Chromium, 浏览器, WebEngine

添加新评论