时隔好久之后的博客,一直准备要写来着,可惜时间问题,所以就一直拖着!
今天是猪猪的第一天加班,要陪他下班。。。(所以就来先写个前导吧)
本来要在上周末打算写这篇的,猪猪给我了我个大惊喜,周末过得好充实。再加上今天终于解决了上周的遗留问题,应该是猪猪来了的原因吧,所以这么快就解决了这个问题!最近在项目中接触到了WebKit
的相关问题!谈到WebKit
,那就来谈谈最新版的WebKit
的编译问题吧!
一,webkit编译
源码下载的方式:
进入https://webkit.org/getting-the-code/ 进行源码包 的下载,该源码每天都会进行更新;然后对包进行解压
1
2tar jxvf WebKit-SVN-source.tar.bz2
cd webkitSVN进行下载:
1
2svn checkout https://svn.webkit.org/repository/webkit/trunk WebKit
并且可运行update-webkit脚本更新源码Git下载:
1
git clone git://git.webkit.org/WebKit.git WebKit
对源码进行编译:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42在编译过程中因为系统版本的问题,踩过的坑可真不少!所以在这里记录一下:
1.依赖库安装
编译过程中,我们首先需要进行WebKit提供的脚本依赖库安装:
./WebKit/Tools/gtk/install-dependencies
./WebKit/Tools/Script/update-webkitgtk-libs //执行第二个命令要注意不能在root账号下 第二个命令实际上是下载jhbuild编译工具编译gnome环境,在执行第二条命令时,这个耗时特别长,会出现网络问题,导致如下下载出错
git clone https://github.com/jhbuild.git
clone 'jhbuild'...
remote: Counting objects: 3658, done.
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: (EOF)
fatal: index-pack failed
Failed to build GTK+ port dependencies with jhbuild
Died at ./WebKit/Tools/Scripts/update-webkitgtk-libs line 24.
解决方法:
应该是clone内容更新太多,需要设置postBuffer更大些,用下面命令解决
git config --global http.postBuffer 524288000
大多是因为网速的问题,所以这部分可尽量选择在网速较好的时段内去选择下载,中间出现差错,可多次尝试。
2.编译
在以上安装包安装完毕后,可进行编译
如果是svn得到的代码,进入webkit目录后执行编译脚本得到./WebKitBuild/Release/bin/jsc
cd webkit
./Tools/Scripts/build-jsc --gtk --makeargs="-j4"
由于webkit是最新版的,而且编译的时候参考了官网的教程,所以在编译的过程中,相对速度较快,问题较少,中间缺少一个依赖包,安装即可;
-- Checking for module 'libwoff2dec'
-- No package 'libwoff2dec' found
-- Could NOT find WOFF2Dec: Found unsuitable version "", but required is at least "1.0.2" (found WOFF2DEC_INCLUDE_DIRS-NOTFOUND)
CMake Error at Source/cmake/OptionsGTK.cmake:351 (message):
libwoff2dec is needed for USE_WOFF2.
Call Stack (most recent call first):
Source/cmake/WebKitCommon.cmake:61 (include)
CMakeLists.txt:156 (include)
解决方法:根据提示的No package 'libwoff2dec' found 如果直接下载package 'libwoff2dec'会报错,对相关依赖包进行查看后该处缺少的是libwoff-dev 直接sudo apt下载即可
sudo apt-get install libwoff-dev
安装完毕,继续进行编译则可。
最终会出现想要的这个
[1336/1336] Linking CXX executable bin/testb3
====================================================================
JavaScriptCore is now built (36m:38s).
====================================================================
二,编译环境
编译主机版本:Ubuntu 18.04
WebKit
版本:WebKit r235496
三,参考文献