这天工作上没什么安排,打算研究下webkit,从http://nightly.webkit.org/builds/trunk/src/1下载到webkit源码进行编译,没想到遇到不少问题,还把虚拟机的里ubuntu系统启动不了,最终落得重温重装ubuntu系统。以下是编译 webkit过程遇到的种种不良的情况,希望对编译webkit的盆友有所帮助。
我的环境:32位ubuntu 10.04,联想Y470。
一、webkit 介绍
WebKit是Mac OS X v10.3及以上版本所包含的软件框架。同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。
WebKit包含一个网页引擎WebCore和一个脚本引擎JavaScriptCore,它们分别对应的是KDE的KHTML和KJS。不过,随着JavaScript引擎的独立性越来越强,现在WebKit和WebCore已经基本上混用不分(例如Google Chrome采用V8引擎,却仍然宣称自己是WebKit内核)。当初苹果公司在设计WebKit之时加入了太多Mac OS X平台的独有事物,这给向其它系统的移植造成了很大障碍。不过,由于WebKit出色的开源特性,这些障碍正在被不断克服。目前在Linux平台关于WebKit的移植主要由两个分支:WebkitQt和WebKitGtk,由于现在主流Linux的桌面环境是Gtk,所以我选择了编译Gtk版本的WebKit。
二、源码准备
webkit源码获取有两种方法。可以直接到WebKit的官方网站是http://webkitgtk.org/,上面可以下载到当前稳定版本,上面的源码包比较小,网络慢的朋友可以选择直接从这里下载,我急性子,所以也选择了这种方法;还有一种是通过使用svn来下载,有好几百兆。
三、安装编译依赖库
由于ubuntu 10.04自带的库有些太低更没有安装,所以要更新更安装以下依赖库,否则编译不能通过。
webKit依赖如下软件包:
autoconf
automake
autotools-dev
bison (>= 2.4.1)
flex
gperf
glib-networking
gtk-doc-tools
libenchant-dev
libgail-dev
libgeoclue-dev
libgstreamer-plugins-base0.10-dev
libgtk2.0-dev (>= 2.10)
libicu-dev
libjpeg62-dev
libpango1.0-dev (>= 1.16)
libpng12-dev
libsqlite3-dev
libtool
libxslt1-dev
libxt-dev
上面这些库可以直接通过apt-get安装所得,libglib2.0-dev (>= 2.27.4)和libsoup2.4-dev (>= 2.33.1.20101209)这两个库可以手动下载安装,由于 ubuntu已经自带了libglib2.0-dev(2.12.9.4)版本太低,在安装libsoup2.4-dev前要先删除,然后重装libglib2.0-dev (>= 2.27.4)版本,否则libsoup2.4-dev安装不成功。一般装完的以上的库可以正常编译了,以上各个依赖库的功能可以google查看。
四、编译webkit -gtk
运行./configure
如果在检查依赖关系时没有提示出错,编译可以说成功就在眼前了。
再运行./WebkitTools/Scripts/build-webkit --gtk (大概半个小时左右)
如果返回以下信息表明编译成功:
make[1]:正在离开目录 `/home/work/opensource/WebKit-r43284/WebKitBuild/Release'
===========================================================
WebKit is now built. To run GtkLauncher with this newly-built
code, use the "WebKitTools/Scripts/run-launcher" script.
NOTE: WebKit has been built with SVG support enabled.
GtkLauncher will have SVG viewing capabilities.
Your build supports the following (optional) SVG features:
* Basic SVG animation.
* SVG as image.
* SVG fonts.
* SVG foreign object.
* SVG <use> support.
===========================================================
五、最后执行./WebKitTools/Scripts/run-launcher --gtk
来源:https://www.cnblogs.com/kurl/archive/2012/02/21/2361257.html