編譯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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章