2008 Jul 18補充:
這篇大概是本部落存活最久的文章,已經超過一年了還有網友留言發問^^ 我要說明的是當初我進行的那個案子已經在三月左右結束掉了,GTK也是去年為了找尋可用的GUI才去抓來試玩;雖然我現在換了一個又可碰embedded linux的工作,不過碰GUI的機會可能已經不是那麼大了,所以有些問題我只能憑記憶或經驗去回答,若有講錯的還請見諒。如果我買來新的開發版上有附面板的話,也許我會再去build一次GTK也說不定…
其實我是一點也不建議用GTK的 :p
很無聊的題目,因為做起來實在很麻煩,想說至少做個記錄,給打算porting到ARM平台上的人參考。有天我忘記了也可以回頭看看…
根據DirectFB官方Wiki所說,要把Gtk+弄到DirectFB上需要準備以下東西: GTK+, Cairo, GLib, Pango, ATK。 做了一次之後才發現那份文件寫的稍微零散,如果你要做一個非i386的版本一定會漏掉許多東西。在我安裝好ARM toolchain之後,依序做了下列動作才算作好Gtk+所需要的各種元件:
- 先build GLib,其中還需要用到libiconv跟libgettext。在cross compile GLib的時候可能會遇到一些麻煩,我有找到解法放在黑米的書籤。
- ATK需要用到GLib的東西,所以擺它後面。
- DirectFB,選項很多我把大部分不需要的都關掉了(osx, sdl, vnc, video4linux, 所有graphic driver都不裝,input driver只安裝linuxinput, ps2mouse, keyboard)。在這裡又多裝了libjpeg(make install-lib才會把library裝好), libpng, zlib, freetype。
- Cairo需要DirectFB當作後端,此外還需要fontconfig(configure檢查不出來,編譯的時候才知道沒有),expat跟freetype也會被fontconfig用到,裝DirectFB的時候已經先安裝freetype了,所以要再裝expat。安裝選項中把xlib跟win32 disable,再enable directfb即可。
- Pango,需要有Cairo,之後只需要把with-x關掉即可。
- Gtk+,我還沒裝
所以說除了那幾包主要元件之外,至少還需要libiconv, libgettext, fontconfig, freetype, expat這五個相關的header跟library,如果DirectFB要支援jpg跟png的話就還要再加上libjpeg, libpng, zlib。裝完了以上東西才能繼續安裝Gtk+,到這裡我也累了,如果編譯Gtk+又遇到什麼問題下次再貼上來。
所有我用到的版本
- atk-1.10.3
- cairo-1.4.4
- DirectFB-1.0.0
- expat-2.0.0
- fontconfig-2.4.0
- freetype-2.3.4
- gettext-0.16
- glib-2.9.6
- jpegsrv.v6b
- libiconv-1.11
- libpng-1.2.16
- pango-1.11.99
- zlib-1.2.3
Categories: 數位石器時代
55 則留言 »