Windows下Qt5.6.2+vs2013单独编译webengine
阅读原文时间:2021年04月20日阅读:1

一、编译前的准备

1.1安装python-2.7.12

参考链接:https://www.jb51.net/article/136324.htm

1.2安装ActivePerl_5.16.2

   一直next就行

https://jingyan.baidu.com/article/b0b63dbf38d3d44a4830702f.html

1.3 安装bision

参考链接:http://ftp.gnu.org/gnu/bison/

1.4安装Flex

参考链接:http://gnuwin32.sourceforge.net/packages/flex.htm

1.5安装GPerf

参考链接:http://gnuwin32.sourceforge.net/packages/gperf.htm

1.6添加环境变量

安装完毕后,将以上安装的目录添加到path

Win10->右键我的电脑-属性-高级系统设置-环境变量-系统变量-找到path-添加

1.7 Qt5.6.2的源码

也就是C:\Qt\Qt5.6.2\5.6下的src,要是没有源码,可以重新安装,安装时勾选上源码。

1.8 编译出来的库带有pdb文件

编译出来的release-dll没有pdb文件,所以在webengine.pro文件中添加如下内容,重新编译:

QMAKE_LFLAGS_RELEASE+=/MAP
QMAKE_CFLAGS_RELEASE += /Zi
QMAKE_LFLAGS_RELEASE +=/debug /opt:ref

使release下可调试,生成pdb

只在qtwebengine.pro中添加,无效,所以我在对应的pro下都添加了可调式数据,生成了对应的2个pdb文件。Qtwebenginecore.pdb不能生成(实际比下图加的还多,整个SRC下的pro文件都对应添加了)

二、编译

2.1 打开vs2013命令工具

右键以管理员身份打开

2.2 命令进入webengine文件夹并输入命令

   # cd C:\Qt\Qt5.6.2\5.6\Src\qtwebengine

   # C:\Qt\Qt5.6.2\5.6\msvc2013\bin\qmake.exe –r qtwebengine.pro

命令截图如下

2.3 编译release版本的webengine

输入命令#nmake release

注:nmake release 只编译release版本(namke debug 编译debug;nmake 两个都编译,这两种没亲测,只做参考)

2.3.1 nmake release 后遇到的错误

2.3.1.1 ninja.exe没有生成

  C:\Qt\Qt5.6.2\5.6\Src\qtwebengine\src\3rdparty\ninja\ninja.exe 路径下没有ninja.exe生成,错误提示如下图:

解决办法:

重新生成ninja.exe:

C:\Qt\qt-everywhere-opensource-src-5.6.0\qtwebengine\src\core

删除Makefile.* 文件

进入\qtwebengine\src\core运行#qmake  gyp_run.pro -o Makefile.gyp_run

2.3.1.2 找不到re2c

warning: A compatible version of re2c (>= 0.11.3) was not found; changes to src/*.in.cc will not affect your build.

build.cc

解决办法:重新安装re2c

重新下载re2c,并把re2c.exe放入ninja文件夹中重新运行命令,如下:

https://sourceforge.net/projects/re2c/   re2c下载链接

重新编译ninja(二选一)

方式一:

Cd C:\Qt\Qt5.6.2\5.6\Src\qtwebengine\src\3rdparty\ninja

python configure.py --bootstrap

方式二:

cd C:\Qt\Qt5.6.2\5.6\Src\qtwebengine\src\core

C:\Qt\Qt5.6.2\5.6\msvc2013\bin\qmake.exe gyp_run.pro -o Makefile.gyp_run

Ninja.exe生成成功:

2.3.2 重新执行 nmake release

遇到如下编译错误:

解决办法:

参考链接:https://codereview.chromium.org/10050005/ 最后一句话

找到

C:\Qt\Qt5.6.2\5.6\Src\qtwebengine\src\3rdparty\chromium\ui\gl\gl_bindings_autogen_gl.h   

添加:

#include "gl_bindings.h"

/* GL_OES_EGL_image */

#ifndef GL_OES_EGL_image

typedef void* GLeglImageOES;

#endif

如下图:

然后重新执行命令:#nmake release

2.4 安装

输入命令#nmake install

Release的编译完成,但是会爆出一个debug的错误,不过不影响release库的使用

三 参考链接

编译参考链接

https://blog.csdn.net/jinzeyu_cn/article/details/53440530

https://blog.csdn.net/saga1979/article/details/51734001

https://doc.qt.io/qt-5.6/qtwebengine-platform-notes.html#macos

https://blog.csdn.net/u013125105/article/details/83379487

https://blog.csdn.net/wyansai/article/details/80606913

https://stackoverflow.com/questions/41611445/unable-to-get-mp3-support-with-qtwebengine

https://blog.csdn.net/sk_Overlord_knife/article/details/51473783?utm_source=blogxgwz3  flex和 bison 下载安装链接