Windows下Qt5.6.2+vs2013单独编译webengine
一、编译前的准备
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.****.net/jinzeyu_cn/article/details/53440530
https://blog.****.net/saga1979/article/details/51734001
https://doc.qt.io/qt-5.6/qtwebengine-platform-notes.html#macos
https://blog.****.net/u013125105/article/details/83379487
https://blog.****.net/wyansai/article/details/80606913
https://stackoverflow.com/questions/41611445/unable-to-get-mp3-support-with-qtwebengine
https://blog.****.net/sk_Overlord_knife/article/details/51473783?utm_source=blogxgwz3 flex和 bison 下载安装链接