2008年8月26日 星期二

[轉貼]在ARM9(s3c2410)上移植GUI系統(gtk+ 與 DirectFb)

==================================================== 文檔名:在ARM9(s3c2410)上移植GUI系統(gtk+ 與 DirectFb) 文檔撰寫人:盧名揚(chinalmy) 第一次完成日期:2008_08_06 E-mail:chinalmy@yahoo.com.cn 附加: 由於下學期大四要找工作了,所以比較忙。只是做一些筆記性的記錄。再加上整個GUI系統移植後還有許多問題。在9月初將整理一份詳盡的"How -To"文檔。但是我能保證的是,所有步驟沒有隱瞞或者遺漏。如果你遇到困難,可以與我聯繫,很樂意與你交流。更加歡迎留言或來信批評指正,謝 謝。 另外,這份文檔只有參考價值。如果你完全按照步驟來完成交叉編譯工作,難度比較大。如果你比較忙的話,我很樂意把交叉編譯好的“GTK-DFB”文檔,與你分享,當作一個參考。歡迎來信索取。!~(為了交流方便,我的手機是:13851807025) ==================================================== 近期完成了 GTK+ 與 DirectFB 往ARM9上的移植。 我開發平臺是:Magic2410(廣東周立功生產) Fedora8 (完整安裝方式) 我所用的軟體:Gtk-DFB相關: 1:zlib-1.2.3.tar.bz2 2:libpng-1.2.19.tar.bz2 3:glib-2.12.13.tar.bz2 4:atk-1.19.3.tar.bz2 5:freetype-2.3.5.tar.bz2 6:libxml2-2.6.30.tar.gz 7:fontconfig-2.4.2.tar.gz 8:jpegsrc.v6b.tar.gz 9:DirectFB-1.0.0.tar.gz 10:cairo-1.4.12.tar.gz 11:pango-1.16.5.tar.gz 12:gtk+-2.10.14.tar.bz2 交叉編譯相關: arm-linux-gcc-3.4.1.tar.bz2 環境變數: export target=arm-linux export PATH=$PATH:/home/chinalmy/gtk_dfb/arm_tool_arm_3.4.1/bin export PREFIX=/home/chinalmy/gtk_dfb/target export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib export PKG_CONFIG_PATH=/home/chinalmy/gtk_dfb/target/lib/pkgconfig export PATH=$PREFIX/bin:$PATH 步驟: --------------------------------------------------------- 說明:其中“./configure”與“make”並不是直接執行的命令,後接有具體參數,為了清晰的緣故,詳請見附錄一。 --------------------------------------------------------- ①zlib-1.2.3.tar.bz2 ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ②libpng-1.2.19.tar.bz2 ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ③glib-2.12.13.tar.bz2 ↓在configure中找到“cannot run test program while cross compiling”與“cross-compiling”,並把各自所在行的下方的“{ (exit 1); exit 1; };”去掉。 ↓./configure ↓修改 glib/giounix.c 中的 #include ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ④atk-1.19.3.tar.bz2 ↓./configure ↓修改MakeFile 中的 glib_genmarshal 為 /usr/bin/glib_genmarshal ↓exit ↓去掉 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib ↓重新設定刪減後的環境變數 ↓make clean ↓make ↓make install ↓加上 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib --------------------------------------------------------- --------------------------------------------------------- ⑤freetype-2.3.5.tar.bz2 ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ⑥libxml2-2.6.30.tar.gz ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ⑦fontconfig-2.4.2.tar.gz ↓./configure ↓exit ↓去掉 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib ↓重新設定刪減後的環境變數 ↓make clean ↓make ↓make install ↓加上 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib --------------------------------------------------------- --------------------------------------------------------- ⑧jpegsrc.v6b.tar.gz ↓./configure ↓make clean ↓make ↓make install ↓make install_lib ↓make install_headers --------------------------------------------------------- --------------------------------------------------------- ⑨DirectFB-1.0.0.tar.gz ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- ⑩cairo-1.4.12.tar.gz ↓./configure ↓make clean ↓make ↓make install ↓新增以下 lib 到 cairo.pc 中: -lfreetype -lfontconfig -ldirectfb -lz -ldirect -lpng12 -lxml2 -lfusion --------------------------------------------------------- ①①pango-1.16.5.tar.gz ↓./configure ↓make clean ↓make ↓make install ↓添加以下lib到pango.pc中: -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 添加以下lib到pangocairo.pc中: -lpangoft2-1.0 ↓製造pango.modules(詳見附錄二) --------------------------------------------------------- ①②gtk+-2.10.14.tar.bz2 ↓./configure ↓exit ↓去掉 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib export PATH=$PREFIX/bin:$PATH ↓重新設定刪減後的環境變數 ↓make clean ↓make ↓make install ↓如果你在編譯的過程中遇到jpeg 出錯無法通過的話,sorry我還沒有解決這個問題。你可以在"configure"中把他遮罩掉(加上--without-libjpeg ) ↓如果你在編譯的過程中遇到png 出錯無法通過的話,那麼請把/include/下的“zlib.h”“zconf”copy到/libpng12/下 ↓製造gdk_pixbuf.loaders -> 到“etc/gtk-2.0/” 下(見附錄二) --------------------------------------------------------- --------------------------------------------------------- 大結局::) 至此,整個GTK-DFB 圖形系統製造完畢,目前你需要解決字體的問題,在arm9開發箱上的顯示全是“小方框”。 英文字體(就是尾碼ttf的東西),到處都有就不多說了;中文字體我用的是winxp下的“仿宋”(3M大小)。效果還不錯`~呵呵 把字體放到你的"etc/font"下麵confgure 檔所指向的檔目錄下。 等等!你還需要把交叉編譯工具鏈中的“librt*”一共四個文件copy到“/lib”中。(有可能是我所用交叉編譯器的原因)

沒有留言: