http://www.directfb.com.cn/viewthread.p ... r%3Ddigest
我用到的軟件包如下:
tslib1.4, glib-2.12.13, atk-1.20.0, jpegsrc.v6b, zlib-1.2.3
libpng-1.2.24, expat-2.0.1, freetype-2.3.5, libxml2-2.6.30, fontconfig-2.5.0
tiff-3.7.4, DirectFB-1.1.1, cairo-1.4.12, pango-1.16.4, gtk+-2.10.14
所有的軟件包我都傳到納米盤那了啊,需要的去那下,地址如下:
http://d.namipan.com/d/62febd6b5963fb3c ... 5cc3fd5502
我使用的環境如下:
操作系統:ubuntu8.10
編譯器:arm-linux-gcc3.4.1
首先我按照那篇文章一步步的進行操作的確是成功編譯了directfb+gtk,然後我就想自己寫一個腳本來把那些操作貫穿起來,方便後來人用到編譯,可是我在編譯到第14個軟件包pango的時候卻失敗了,前13個軟件包都成功編譯了的,有興趣的來完善這個腳本,我現在就把那個腳本貼出來
對了,還有我雖然成功交叉編譯出來了,但是由於我現在沒有LCD屏,所以也沒把程序在板子上跑起來過,有LCD屏的朋友可以試下看看,別忘了分享你的成果哦,成功編譯出來的朋友如果想移植到板子上跑,那篇文章有說到,我在這就不貼出來了,因爲我也沒試過,後面我會把參考的那篇文章的pdf文件傳上來
先準備下環境吧:
xhy@xhy-desktop:~$mkdir gtk-work
xhy@xhy-desktop:~$cd gtk-work
xhy@xhy-desktop:~$mkdir source
xhy@xhy-desktop:~$mkdir script
xhy@xhy-desktop:~$mkdir work
把那15個軟件包放到source目錄下,把我寫的腳本放到script目錄下,讓腳本具有可執行權限
xhy@xhy-desktop:~$cd script
xhy@xhy-desktop:~$chmod 755 build-gtkdfb.sh
切換到root用戶,不要用sudo,執行腳本
xhy@xhy-desktop:~#cd /home/xhy/gtk-work/work
xhy@xhy-desktop:~#../script/build-gtkdfb.sh
腳本里的目錄需要更改啊,我放的軟件目錄是在/home/xhy/gtk-work/source
你要改爲你自己的
腳本代碼如下:
# tslib1.4, glib-2.12.13, atk-1.20.0, jpegsrc.v6b, zlib-1.2.3
# libpng-1.2.24, expat-2.0.1, freetype-2.3.5, libxml2-2.6.30, fontconfig-2.5.0
# tiff-3.7.4, DirectFB-1.1.1, cairo-1.4.12, pango-1.16.4, gtk+-2.10.14
export SOURCE_PATH=/home/xhy/gtk-work/source
export PREFIX=/opt/gtkdfb
export LDFLAGS=-L$PREFIX/lib
export CFLAGS="-g -I$PREFIX/include"
export PKG_CONFIG_PATH=${INSTALL_PATH}/lib/pkgconfig
export CC=arm-linux-gcc
BUILDDIR=`pwd`
# 1.交叉編譯tslib, 依賴的庫: 無
echo "=========開始交叉編譯tslib========="
cd ${BUILDDIR}
tar xzf ${SOURCE_PATH}/tslib-1.4.tar.gz
cd tslib
echo "ac_cv_func_malloc_0_nonnull=yes" > arm-linux.cache
./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache --enable-inputapi=no
make
make install
# 2.交叉編譯glib, 依賴的庫: 無
echo "=========開始交叉編譯glib========="
cd ${BUILDDIR}
tar xjf ${SOURCE_PATH}/glib-2.12.13.tar.bz2
cd glib-2.12.13
echo "ac_cv_type_long_long=yes" > arm-linux.cache
echo "glib_cv_stack_grows=no" >> arm-linux.cache
echo "glib_cv_uscore=no" >> arm-linux.cache
echo "ac_cv_func_posix_getpwuid_r=yes" >> arm-linux.cache
./configure --host=arm-linux --build=i686-pc-linux --prefix=$PREFIX --cache-file=arm-linux.cache
make
make install
# 3.交叉編譯atk, 依賴的庫: glib
echo "=========開始交叉編譯atk========="
cd ${BUILDDIR}
tar xjf ${SOURCE_PATH}/atk-1.20.0.tar.bz2
cd atk-1.20.0
./configure --host=arm-linux --prefix=$PREFIX
make
make install
# 4.交叉編譯jpeg, 依賴的庫: 無
echo "=========開始交叉編譯jpeg========="
cd ${BUILDDIR}
tar xzf ${SOURCE_PATH}/jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=$PREFIX --enable-shared --enable-static
mkdir $PREFIX/man
mkdir $PREFIX/man/man1
sed -i -e 's/CC= gcc/CC= arm-linux-gcc/g' Makefile
sed -i -e 's/AR= ar rc/AR= arm-linux-ar rc/g' Makefile
sed -i -e 's/AR2= ranlib/AR2= arm-linux-ranlib/g' Makefile
make
make install
# 5.交叉編譯zlib, 依賴的庫: 無
echo "=========開始交叉編譯zlib========="
cd ${BUILDDIR}
tar xjf ${SOURCE_PATH}/zlib-1.2.3.tar.bz2
cd zlib-1.2.3
sed -i -e 's/CC= gcc/CC= arm-linux-gcc/g' configure
./configure --prefix=$PREFIX --shared
make
make install
# 6.交叉編譯libpng, 依賴的庫: 無
echo "=========開始交叉編譯libpng========="
cd ${BUILDDIR}
tar xjf ${SOURCE_PATH}/libpng-1.2.24.tar.tar
cd libpng-1.2.24
./configure --host=arm-linux --prefix=$PREFIX
make
make install
# 7.交叉編譯expat, 依賴的庫: 無
echo "=========開始交叉編譯expat========="
cd ${BUILDDIR}
tar xzf ${SOURCE_PATH}/expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --host=arm-linux --prefix=$PREFIX
make
make install
# 8.交叉編譯freetype, 依賴的庫: 無
echo "=========開始交叉編譯freetype========="
cd ${BUILDDIR}
tar xjf ${SOURCE_PATH}/freetype-2.3.5.tar.tar
cd freetype-2.3.5
./configure --host=arm-linux --prefix=$PREFIX
make
make install
# 9.交叉編譯libxml, 依賴的庫: 無
echo "=========開始交叉編譯libxml========="
cd ${BUILDDIR}
tar xzf ${SOURCE_PATH}/libxml2-2.6.30.tar.gz
cd libxml2-2.6.30
./configure --host=arm-linux --prefix=$PREFIX
make
make install
# 10.交叉編譯fontconfig, 依賴的庫: freetype, libxml2
echo "=========開始交叉編譯fontconfig========="
cd ${BUILDDIR}
export LIBXML2_CFLAGS=-I$PREFIX/include/libxml2
export LIBXML2_LIBS="-L$PREFIX/lib -lxml2"
tar xzf ${SOURCE_PATH}/fontconfig-2.5.0.tar.gz
cd fontconfig-2.5.0
./configure --host=arm-linux --prefix=$PREFIX --with-freetype-config=$PREFIX/bin/freetype-config --with-arch=arm
make
make install
# 11.交叉編譯tiff, 依賴的庫: jpeg, zlib
echo "=========開始交叉編譯tiff========="
cd ${BUILDDIR}
tar xzf ${SOURCE_PATH}/tiff-3.7.4.tar.gz
cd tiff-3.7.4
./configure --host=arm-linux --prefix=$PREFIX --enable-shared
make
make install
# 12.交叉編譯DirectFB, 依賴的庫: 無
echo "=========開始交叉編譯DirectFB========="
cd ${BUILDDIR}
tar xzf ${SOURCE_PATH}/DirectFB-1.1.1.tar.gz
cd DirectFB-1.1.1
./configure --host=arm-linux --prefix=$PREFIX --with-gfxdrivers=none --with-inputdrivers=all --enable-png --enable-jpeg --disable-tiff --enable-zlib --enable-sdl=no --enable-gif=no --disable-x11
make
make install
# 13.交叉編譯cairo, 依賴的庫: freetype,zlib
echo "=========開始交叉編譯cairo========="
cd ${BUILDDIR}
tar xzf ${SOURCE_PATH}/cairo-1.4.12.tar.gz
cd cairo-1.4.12
./configure --host=arm-linux --prefix=$PREFIX --without-x --disable-xlib --disable-xlib-xrender --enable-directfb --enable-freetype --disable-win32 --enable-pdf --enable-ps --disable-svg --enable-png
make
make install
# 14.交叉編譯pango, 依賴的庫: glib, freetype, xml
echo "=========開始交叉編譯pango========="
cd ${BUILDDIR}
tar xjf ${SOURCE_PATH}/pango-1.16.4.tar.bz2
cd pango-1.16.4
sed -i -e 's/have_cairo=false/have_cairo=true/g' configure
sed -i -e 's/have_cairo_png=false/have_cairo_png=true/g' configure
sed -i -e 's/have_cairo_ps=false/have_cairo_ps=true/g' configure
sed -i -e 's/have_cairo_pdf=false/have_cairo_pdf=true/g' configure
sed -i -e 's/have_cairo_freetype=false/have_cairo_freetype=true/g' configure
./configure --host=arm-linux --prefix=$PREFIX --enable-cairo --without-x
make
make install
# 15.交叉編譯gtk, 依賴的庫: glib, pango, atk, cairo, DirectFB
echo "=========開始交叉編譯gtk========="
cd ${BUILDDIR}
export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"
export CPPFLAGS="-I$PREFIX/include"
tar xjf ${SOURCE_PATH}/gtk+-2.10.14.tar.bz2
cd gtk+-2.10.14
./configure --host=arm-linux --prefix=$PREFIX --with-gdktarget=directfb --without-x --without-libtiff
make
make install
echo "=========交叉編譯全部結束========="