分享

在Linux下编译WebkitGtk | 移动开发博客

 lifei_szdz 2012-05-21

在Linux下编译WebkitGtk

2011/06/06 by lishen 5 Comments ?

本以为编译WebkitGtk是个很简单的工作,没想到竟然颇费了些功夫。
我的环境:64位的LinuxMint10(也可以认为是Ubuntu 10.10),ATOM N450(SAMSUNG N145)

先简单介绍一下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。

1、准备
WebKit的官方网站是http:///,上面可以下载到当前稳定版本的WebKitGtk1.4.1。但是WebKit官方wiki上有一篇文章“Building WebKitGTK+“,看内容好像WebKitGtk的源代码已经融合近了主线WebKit,但是主线WebKit的代码要用过svn来下载,有好几百兆。所以我还是偷懒,使用从WebKitGtk网站上下载的代码来编译。

2、安装依赖软件包
WebKit依赖如下软件包:
autoconf
automake
autotools-dev
bison (>= 2.4.1)
flex
gperf
glib-networking
gtk-doc-tools
libenchant-dev
libgail-dev
libgeoclue-dev
libglib2.0-dev (>= 2.27.4)
libgstreamer-plugins-base0.10-dev
libgtk2.0-dev (>= 2.10)
libicu-dev
libjpeg62-dev
libpango1.0-dev (>= 1.16)
libpng12-dev
libsoup2.4-dev (>= 2.33.1.20101209)
libsqlite3-dev
libtool
libxslt-dev
libxt-dev

其中除了libglib2.0-dev和libsoup2.4-dev之外,全都可以用apt-get下载和安装。libglib2.0-dev和libsoup2.4-dev版本要求很新,可以按照官方wiki介绍的方式加入PPA的源。但是我还是自己下载了两个程序的源代码来编译(PPA的源加入之后以后每次upgrade会特别慢),glib-2.28.8libsoup2这两个软件编译没有什么特别的,configure之后make、make install就行了。
最开始的时候我还害怕把系统目录弄乱不想执行make install,结果发现WebKitGtk使用pkg-config来检查软件是否安装,不执行make install就需要自己将pc文件修改路径并拷贝到pkg-config的搜索目录。所以还是简单执行make install了事。

3、编译参数
configure时,执行到检测glib的时候总是无法通过,经实验在编译之前设置一下如下两个环境变量即可:
export CFLAGS=`pkg-config --cflags glib-2.0`
export LIBS=`pkg-config --libs glib-2.0`

然后运行./configure就可以了。

4、运行
首先把自己编译的库文件的路径加入动态连接器的搜索路径列表中
export LD_LIBRARY_PATH='/usr/local/lib'
然后运行WebKit/Programs/GtkLauncher就OK了。

最后做个善意的提醒,WebKit编译的速度很慢,在Atom N450 64位Linux上要编译4个多小时。

运行界面截图:
2011-06-06-213556_524x435_scrot
2011-06-06-213621_531x442_scrot

如果你喜欢,请订阅RSS feed

相关日志:

  1. Chromium的多进程架构
  2. WebKit源代码目录结构

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多