编译webkit gtk遇到的问题

来源:互联网 发布:matlab 01矩阵画图 编辑:程序博客网 时间:2024/05/22 01:49

浏览器内核中,以我对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
成功了~~




原创粉丝点击