Qt5 编译 Qt WebEngine
由于 Qt5 自带的 WebEngine 默认不支持 MP3、MP4 格式的多媒体文件,如果想要开启播放 MP3、MP4 的功能,则需要编译 Qt WebEngine 。
这篇教程将演示如何在 Qt5.9 和 Qt5.11 上编译 Qt WebEngine。
编译需求
在所有平台上,都需要以下工具:
- Qt 源码 和 Qt WebEngine 模块源码,至少需要安装
MSVC 2015 32-bit
、MSVC 2015 64-bit
、MSVC 2017 64-bit
、Sources
、Qt 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
执行完成后,控制台的输出如下:
最后执行 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” 。
您好 请问下 我编译报fatal error U1077: 'call'错误 改了系统语言和文件编码 还是没办法解决
编译qmake.exe qtwenengin.pro && nmake时会有些其他的问题没办法解决
系统语言改为英文即可,也可以将出现问题的文件编码方式改为 “UTF-8 With BOM” 。
至于你说的其他问题具体是什么问题呢?
你好,我的系统是win10 home版,系统语言已经改为英语(美国),system locale 也设置为了英语(美国)包括地区 时区都修改为美国了。 我编译的是Qt5.12.4 x86版本。 在编译时还是会报ninja: build stopped: subcommand failed. 请问还有什么方式解决吗? 谢谢啦-_-
将出现问题的文件编码方式改为 “UTF-8 With BOM” 。