编译webkit gtk遇到的问题

浏览器内核中,以我对Mozilla Firefox比较熟悉,并为其写过扩展。不过Webkit这几年绝对值得注意,并且在mobile平台上,Webkit比Firefox要成功。

 

了解开源一个项目,从source build开始。我选择的是webkit-gtk,因为我有个配置良好的ubuntu VM。

帮助页面http://trac.webkit.org/wiki/BuildingGtk,说明了其它库依赖:

  • autoconf
  • automake
  • libtool
  • libgtk2.0-dev (>= 2.10)
  • libpango1.0-dev (>= 1.16)
  • libicu-dev
  • libxslt-dev
  • libsoup2.4-dev (>= 2.27.4) (*)
  • libsqlite3-dev
  • gperf
  • bison (>= 2.4.1)
  • flex
  • libjpeg62-dev
  • libpng12-dev
  • libxt-dev
  • autotools-dev
  • libgstreamer-plugins-base0.10-dev
  • libenchant-dev
  • libgail-dev
  • libgeoclue-dev
  • gtk-doc-tools

直接用apt-get 全部安装。

这一步简单.

 

再来是构建:

$ ./autogen.sh --prefix=/path/to/install/directory 
$ make

出错了,同一页面说明了原因:
(*)   Libsoup 2.29.3 tar ball release is missing libsoup/soup-content-decoder.h .
SOUP_TYPE_CONTENT_DECODER is defined in the header file and it will
result in a compilation error: WebKit/gtk/webkit/webkitprivate.cpp:290:
error: 'SOUP_TYPE_CONTENT_DECODER' was not declared in this scope
.
  libsoup 2.28.2 works.


但是我想,如果自己patch一下,应该更快,不用安装什么旧版本。
所以我自己把
libsoup/soup-content-decoder.h
放到了适当的位置,再把用到decoder的代码删改一下。。

$ ./autogen.sh --prefix=/path/to/install/directory
$ make
$ ./Programs/GtkLauncher

一个简单的Webkit浏览器,就通过XMing显示出来了。。 (Release版前后编译折腾了一两天)

今天中午忽然想用GDB调试,所以加了个参数:
$ ./autogen.sh --prefix=/path/to/install/directory --enable-debug
$ make

结果总是出现:
CXXLD libwebkit-1.0.la
collect2: ld terminated with signal 9 [Killed]

网上一查,是因为内存不足,
学习http://blog.csdn.net/flowingflying/archive/2009/12/01/4915330.aspx中的方法,
加了个2G的swap文件,再make.

四小时多过去,gdb GtkLauncher
b main
r
成功了~~




发布了107 篇原创文章 · 获赞 10 · 访问量 43万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章