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]。