在网上看到一些交叉编译的文档,比较复杂,我这个比较简单,现在能开开发板上跑起来了,但还是有些问题,显示颜色不对,字符没有正常显示,触屏点击没有反应,外接鼠标可以动。本来想等解决好了在写出来的,怕以后忘了,先整理出已完成的部分,以后再补将来弄好的。这里共编译了14个源码包,版本没有选最新的,因为我用的交叉编译器是3.4.1的,最新的g
lib编译可能有问题,找了一个稍早的版本,下面是源码包列表
-rw------- 1 kendy kendy 666821 2008-08-04 10:14 atk-1.19.3.tar.bz2
-rw------- 1 kendy kendy 3216689 2008-08-04 10:14 cairo-1.4.10.tar.gz
-rw------- 1 kendy kendy 2624473 2008-08-04 10:14 DirectFB-1.1.0.tar.gz
-rw------- 1 kendy kendy 446456 2008-08-04 10:14 expat-2.0.1.tar.gz
-rw------- 1 kendy kendy 1278340 2008-08-07 10:55 fontconfig-2.4.2.tar.gz
-rw------- 1 kendy kendy 1279861 2008-08-04 10:15 freetype-2.3.5.tar.bz2
-rw------- 1 kendy kendy 2938164 2008-08-04 10:15 glib-2.12.13.tar.bz2
-rw------- 1 kendy kendy 15172170 2008-08-04 10:15 gtk+-2.10.14.tar.bz2
-rw------- 1 kendy kendy 613261 2008-08-04 10:15 jpegsrc.v6b.tar.gz
-rw------- 1 kendy kendy 650966 2008-08-07 10:23 libpng-1.2.19.tar.bz2
-rw------- 1 kendy kendy 4719760 2008-08-07 10:48 libxml2-2.6.29.tar.gz
-rw------- 1 kendy kendy 1355938 2008-08-04 10:15 pango-1.16.4.tar.bz2
-rw------- 1 kendy kendy 1282627 2008-08-04 10:15 tiff-3.7.4.tar.gz
-rw------- 1 kendy kendy 425209 2008-08-04 10:15 zlib-1.2.3.tar.bz2
安装目录选在/ usr/gtkdfb以下是编译过程, 下面有些只写了configure, 没有写make, make install并不代表不需要做,如果你尝试的时候请补上
export PREFIX=/usr/gtkdfb
export LDFLAGS=-L$PREFIX/lib
export CFLAGS="-g -I$PREFIX/include"
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
1.glib
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
CC=arm-linux-gcc ./configure --host=arm-linux --build=i686-pc-linux --prefix=/usr/gtkdfb --cache-file=arm-linux.cache
make
make install
2.atk
export PREFIX=/usr/gtkdfb
export LDFLAGS=-L$PREFIX/lib
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
./configure --host=arm-linux --prefix=/usr/gtkdfb
3. zlib
CC=arm-linux-gcc ./configure --prefix=/usr/gtkdfb --shared
4. jpeg-6b
./configure --prefix=/usr/gtkdfb --enable-shared --enable-static
修改生成的Makefile文件:
# The name of your C compiler:
CC= gcc 该成 CC=arm-linux-gcc (根据你自己交叉编译器的位置修改)
# library (.a) file creation command
AR= ar rc 该成 AR= arm-linux-ar rc (同上)
# second step in .a creation (use "touch" if not needed)
AR2= ranlib 该成 AR2=arm-linux-ranlib (同上)
mkdir /usr/gtkdfb/man
mkdir /usr/gtkdfb/man/man1
make
make install-lib
5. libpng
export LDFLAGS=-L/usr/gtkdfb/lib
export CFLAGS="-g -I/usr/gtkdfb/include"
./configure -host=arm-linux --prefix=/usr/gtkdfb
6. expat
./configure -host=arm-linux --prefix=/usr/gtkdfb
7. freetype
./configure -host=arm-linux --prefix=/usr/gtkdfb
8. libxml
./configure --host=arm-linux --prefix=/usr/gtkdfb
9. fontconfig
export LDFLAGS=-L/usr/gtkdfb/lib
export CFLAGS="-g -I/usr/gtkdfb/include"
export LIBXML2_CFLAGS=-I/usr/gtkdfb/include/libxml2
export LIBXML2_LIBS="-L/usr/gtkdfb/lib -lxml2"
./configure --host=arm-linux --prefix=/usr/gtkdfb --with-freetype-config=/usr/gtkdfb/bin/freetype-config --with-arch=arm
10. tiff
./configure --host=arm-linux --prefix=/usr/gtkdfb --enable-shared --enable-static
11.DirectFB
export PREFIX=/usr/gtkdfb
export LDFLAGS=-L$PREFIX/lib
export CFLAGS="-g -I$PREFIX/include"
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
./configure -host=arm-linux --prefix=/usr/gtkdfb --with-gfxdrivers=none --enable-png --enable-jpeg --enable-tiff --enable-zlib --enable-sdl=no --enable-gif=no --disable-x11
12. cairo
./configure --host=arm-linux --prefix=/usr/gtkdfb --without-x --disable-xlib --disable-xlib-xrender --enable-directfb --enable-freetype --disable-win32 --disable-pdf --disable-ps --disable-svg --enable-png
13.pango
修改configure文件
have_cairo=true
have_cairo_png=true
have_cairo_freetype=true
./configure --host=arm-linux --prefix=/usr/gtkdfb --enable-cairo --without-x
14. gtk
export PREFIX=/usr/gtkdfb
export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"
export CFLAGS="-g -I$PREFIX/include"
export CPPFLAGS="-I$PREFIX/include"
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
./configure --host=arm-linux --prefix=/usr/gtkdfb --with-gdktarget=directfb --without-x
LDFLAGS中的-Wl,-rpath,$PREFIX/lib设定,解决了找不到pango的问题
设定了CPPFLAGS,解决了jpeglib.h找不到的问题,从而支持了jpeg
gtk编译时,还会报告cairo-pdf.h, cairo-ps.h等不存在,重新编译一下cairo, 将pdf和ps enable, 或者开始编译时不要disable这两个东东。
我的开发板的根文件系统采用nfs mount,将/usr目录下的gtkdfb目录整个cp到nfs目录下的usr目录下,启动开发板,在开发板上运行/usr/gtkdfb/bin目录下的gtk-demo
-rw------- 1 kendy kendy 666821 2008-08-04 10:14 atk-1.19.3.tar.bz2
-rw------- 1 kendy kendy 3216689 2008-08-04 10:14 cairo-1.4.10.tar.gz
-rw------- 1 kendy kendy 2624473 2008-08-04 10:14 DirectFB-1.1.0.tar.gz
-rw------- 1 kendy kendy 446456 2008-08-04 10:14 expat-2.0.1.tar.gz
-rw------- 1 kendy kendy 1278340 2008-08-07 10:55 fontconfig-2.4.2.tar.gz
-rw------- 1 kendy kendy 1279861 2008-08-04 10:15 freetype-2.3.5.tar.bz2
-rw------- 1 kendy kendy 2938164 2008-08-04 10:15 glib-2.12.13.tar.bz2
-rw------- 1 kendy kendy 15172170 2008-08-04 10:15 gtk+-2.10.14.tar.bz2
-rw------- 1 kendy kendy 613261 2008-08-04 10:15 jpegsrc.v6b.tar.gz
-rw------- 1 kendy kendy 650966 2008-08-07 10:23 libpng-1.2.19.tar.bz2
-rw------- 1 kendy kendy 4719760 2008-08-07 10:48 libxml2-2.6.29.tar.gz
-rw------- 1 kendy kendy 1355938 2008-08-04 10:15 pango-1.16.4.tar.bz2
-rw------- 1 kendy kendy 1282627 2008-08-04 10:15 tiff-3.7.4.tar.gz
-rw------- 1 kendy kendy 425209 2008-08-04 10:15 zlib-1.2.3.tar.bz2
安装目录选在/ usr/gtkdfb以下是编译过程, 下面有些只写了configure, 没有写make, make install并不代表不需要做,如果你尝试的时候请补上
export PREFIX=/usr/gtkdfb
export LDFLAGS=-L$PREFIX/lib
export CFLAGS="-g -I$PREFIX/include"
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
1.glib
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
CC=arm-linux-gcc ./configure --host=arm-linux --build=i686-pc-linux --prefix=/usr/gtkdfb --cache-file=arm-linux.cache
make
make install
2.atk
export PREFIX=/usr/gtkdfb
export LDFLAGS=-L$PREFIX/lib
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
./configure --host=arm-linux --prefix=/usr/gtkdfb
3. zlib
CC=arm-linux-gcc ./configure --prefix=/usr/gtkdfb --shared
4. jpeg-6b
./configure --prefix=/usr/gtkdfb --enable-shared --enable-static
修改生成的Makefile文件:
# The name of your C compiler:
CC= gcc 该成 CC=arm-linux-gcc (根据你自己交叉编译器的位置修改)
# library (.a) file creation command
AR= ar rc 该成 AR= arm-linux-ar rc (同上)
# second step in .a creation (use "touch" if not needed)
AR2= ranlib 该成 AR2=arm-linux-ranlib (同上)
mkdir /usr/gtkdfb/man
mkdir /usr/gtkdfb/man/man1
make
make install-lib
5. libpng
export LDFLAGS=-L/usr/gtkdfb/lib
export CFLAGS="-g -I/usr/gtkdfb/include"
./configure -host=arm-linux --prefix=/usr/gtkdfb
6. expat
./configure -host=arm-linux --prefix=/usr/gtkdfb
7. freetype
./configure -host=arm-linux --prefix=/usr/gtkdfb
8. libxml
./configure --host=arm-linux --prefix=/usr/gtkdfb
9. fontconfig
export LDFLAGS=-L/usr/gtkdfb/lib
export CFLAGS="-g -I/usr/gtkdfb/include"
export LIBXML2_CFLAGS=-I/usr/gtkdfb/include/libxml2
export LIBXML2_LIBS="-L/usr/gtkdfb/lib -lxml2"
./configure --host=arm-linux --prefix=/usr/gtkdfb --with-freetype-config=/usr/gtkdfb/bin/freetype-config --with-arch=arm
10. tiff
./configure --host=arm-linux --prefix=/usr/gtkdfb --enable-shared --enable-static
11.DirectFB
export PREFIX=/usr/gtkdfb
export LDFLAGS=-L$PREFIX/lib
export CFLAGS="-g -I$PREFIX/include"
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
./configure -host=arm-linux --prefix=/usr/gtkdfb --with-gfxdrivers=none --enable-png --enable-jpeg --enable-tiff --enable-zlib --enable-sdl=no --enable-gif=no --disable-x11
12. cairo
./configure --host=arm-linux --prefix=/usr/gtkdfb --without-x --disable-xlib --disable-xlib-xrender --enable-directfb --enable-freetype --disable-win32 --disable-pdf --disable-ps --disable-svg --enable-png
13.pango
修改configure文件
have_cairo=true
have_cairo_png=true
have_cairo_freetype=true
./configure --host=arm-linux --prefix=/usr/gtkdfb --enable-cairo --without-x
14. gtk
export PREFIX=/usr/gtkdfb
export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"
export CFLAGS="-g -I$PREFIX/include"
export CPPFLAGS="-I$PREFIX/include"
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
./configure --host=arm-linux --prefix=/usr/gtkdfb --with-gdktarget=directfb --without-x
LDFLAGS中的-Wl,-rpath,$PREFIX/lib设定,解决了找不到pango的问题
设定了CPPFLAGS,解决了jpeglib.h找不到的问题,从而支持了jpeg
gtk编译时,还会报告cairo-pdf.h, cairo-ps.h等不存在,重新编译一下cairo, 将pdf和ps enable, 或者开始编译时不要disable这两个东东。
我的开发板的根文件系统采用nfs mount,将/usr目录下的gtkdfb目录整个cp到nfs目录下的usr目录下,启动开发板,在开发板上运行/usr/gtkdfb/bin目录下的gtk-demo