编译环境
操作系统: windows 10 x64
QT版本: qt 5.13.0
磁盘空间:qtwebengine 源码和编译生成的文件总共145GB,最好预留足够空间,免得中断(如果在虚拟机运行,总的虚拟机空间不要低于200GB)
1. 安装 Visual Studio 2017
安装选项
2. 安装 QT 5.13.0 及源码
因为我只需要编译64位,所以只选择了MSVC 2017 64-bit,如果要编译32位版本就勾选上 MSVC 2017 32-bit 即可,另外因为编译的时候需要用到 Perl,这里也勾选上,就不用额外安装了。
3. 安装编译过程需要用到的其他工具
- Python 2.7 (不要安装 Python3),我这里安装 miniconda (https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda2-py27_4.8.3-Windows-x86_64.exe)
- Perl(Strawberry 版本)如果安装 QT 的时候勾选了Perl,就不用额外安装了(http://strawberryperl.com/)
- Gperf ( http://gnuwin32.sourceforge.net/packages/gperf.htm)
- Bison 和 flex ,下载之后把 win-bison.exe 改成 bison.exe,把 win-flex.exe 改成 flex.exe (https://sourceforge.net/projects/winflexbison/),并把这两个文件拷贝到 gperf安装目录下,如下图位置
4. 设置环境变量
参考下图,把上面安装的软件相应目录都加到环境变量,有些是程序自动设置的,没有的手动加上
其中C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
这个是 Visual Studio 编译环境引入脚本的路径。
5. 修改源码,调整chromium内核的网络连接数限制
正常情况下 chromium 内核系列浏览器网络请求有并发限制,一个域名最多并发6个连接,如果超过6个请求需要排队,如果需要,可以修改该限制,源码位置
file: C:\Qt\Qt5.13.0\5.13.0\src\qtwebengin\src\3rdparty\chromium\net\socket\client_socket_pool_manager.cc:
把该数值修改成想要的值即可
5. 准备编译 cmd 环境
打开命令行工具cmd.exe
,进入QWebengine源码目录 cd C:\Qt\Qt5.13.0\5.13.0\src\qtwebengin
执行命令vcvars64.bat
,输出如下:
6. 编译
执行命令qmake.exe -- -webengine-proprietary-codecs
,参数 -webengine-proprietary-codecs
作用是启用视频解码器,编译之后就可以支持视频播放了。
执行完之后如果没什么报错,就可以执行编译了,编译命令如下:
nmake.exe
这样会生成release版本和debug版本
nmake.exe release
可以这样指定只生成relase版本
执行之后就是漫长的编译过程,编译时间跟电脑性能有关,有可能要十几个小时,编译完成之后会在 qtwebengine 源码目录的 bin 目录下生成相应的 dll 和 exe 文件