Qt:Qt 5.15.2的qtwebengine模块编译方法(VS2019)

Qt 5.15.2的qtwebengine模块编译方法(VS2019)

网上文档日志众多,各执一词。以下给出本人的具体操作步骤,供参考。

官方文档:

https://doc.qt.io/qt-5/windows-building.html

https://doc.qt.io/qt-5/qtwebengine-features.html

基于以上文档,操作如下。
打开VS2019的命令行编译x64 Native Tools Command Prompt for VS 2019,执行:


cd /d G:\Qt\5.15.2\Src

//以下是configure步骤,必不可少。网上大多遗漏此步骤。
SET _ROOT=G:\Qt\5.15.2\Src
SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
set PATH=D:\Python\Python27;D:\Python\Python27\Scripts;%PATH%
SET _ROOT=

configure -debug-and-release -webengine-proprietary-codecs -c++std c++17 -nomake examples -nomake tests -opensource -confirm-license -I G:\Qt\Tools\OpenSSL\Win_x64\include -L G:\Qt\Tools\OpenSSL\Win_x64\lib -recheck-all

//make,尽量使用jom命令
cd /d G:\Qt\5.15.2\Src\qtwebengine
nmake 或 G:\Qt\Tools\QtCreator\bin\jom\jom (jom支持并行编译)
nmake install

编译遇到的错误和处理,以及其他问题说明。

1,ninja。VS2019自带了ninja,qt的tools目录也有ninja(安装时可以勾选)。

2. 如果提示缺少python 2.7,请安装,并设置到python中,即:set PATH=D:\Python\Python27;D:\Python\Python27\Scripts;%PATH%

3. 如果提示缺少bison,需要设置gnuwin32目录,Qt 5.15.2源码目录会带有gnuwin32,即:SET %_ROOT%\gnuwin32\bin;%PATH%

4. 提示ninja: build stopped: subcommand failed,实际是编译错误,和文件编码/系统语言等无关。参考:编译32位QT5.15.0 QT5.15.1 Qt5.15.2 qtwebengine模块 https://blog.csdn.net/shada/article/details/97267721

本人基于此https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/321741 修改,但仍然不行,故合并了最新的qt6.3的相应文件代码,最终修改如下:

chromium/third_party/angle/src/common/mathutil.cpp 和 chromium/third_party/blink/renderer/platform/graphics/lab_color_space.h 的修改同上述补丁,即添加pow函数返回值的float强制类型转换。

chromium/third_party/perfetto/src/trace_processor/timestamped_trace_piece.h 则添加如下内容:

  TimestampedTracePiece(const TimestampedTracePiece&) = delete;
  TimestampedTracePiece& operator=(const TimestampedTracePiece&) = delete;
#if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
  TimestampedTracePiece& operator=(TimestampedTracePiece&& ttp) const {
    return (*const_cast<TimestampedTracePiece*>(this) = std::move(ttp));
  }
#endif

至此,编译通过。

 

2022.3.9:以上虽然编译通过。但建议最好是configure之后,全部编译再nmake install。编译后仍然有一些问题,比如,项目编译链接会有一些小问题,实际视频播放似乎仍然不行,开发者工具不可用。具体原因未查。

由于以上原因,且,新版本QT6的浏览器内核支持中文的开发者工具,因此,本人决定将工程直接升级到qt6。以上仅供参考。

2022.4.18:此前发现的“实际视频播放似乎仍然不行”,应该是Debug版本不行,因为默认按Qt文档提供的方法编译并install的话,Debug版本并没有被install命令安装,手动复制Debug版本应该可行。

相关日志:
Qt:Qt 6.3.0的qtwebengine模块编译方法(VS2019)

 

转载请注明来源,谢谢。

有偿解决C++编程问题,承接项目定制开发;寻一份全职或兼职Windows C++开发工作。联系邮箱:[email protected]


老刀的技术日志 » Qt:Qt 5.15.2的qtwebengine模块编译方法(VS2019)

发表评论