TA的每日心情 | 开心 2016-9-26 15:28 |
---|
签到天数: 56 天 [LV.5]常住居民I 
|

消息来自- 浙江杭州
下载以下源码包:
atk-1.19.3.tar.bz2
cairo-1.4.10.tar.gz
DirectFB-1.1.0.tar.gz
expat-2.0.1.tar.gz
fontconfig-2.4.2.tar.gz
freetype-2.3.5.tar.bz2
glib-2.12.13.tar.bz2
gtk+-2.10.14.tar.bz2
jpegsrc.v6b.tar.gz
libpng-1.2.19.tar.bz2
libxml2-2.6.29.tar.gz
pango-1.16.4.tar.bz2
tiff-3.7.4.tar.gz
zlib-1.2.3.tar.bz2
核心包有6个,分别如下:
glib-2.12.13,atk-1.19.3,pango-1.16.4,DirectFB-1.1.0,cairo-1.4.10,gtk+-2.10.14
打开他们的README和INSTALL文件查看他们的依赖包,分别如下:
glib-2.12.13 依赖包: 无
atk-1.19.3 依赖包:glib-2.12.13
pango-1.16.4 依赖包:glib-2.12.13,fontconfig-2.4.2 ,cairo-1.4.10
DirectFB-1.1.0 依赖包:freetype-2.3.5,,jpegsrc.v6b,libpng-1.2.19,zlib-1.2.3,pkg-config-0.20(建议安装)
expat-2.0.1,libxml2-2.6.29
cairo-1.4.10 依赖包:freetype-2.3.5,zlib-1.2.3。注:这个和前端后端有关,最好自 己看一下README文件
gtk+-2.10.14 依赖包:atk-1.9.1,cairo-1.2.6,jpegsrc.v6b,libpng-1.2.8,
pkg-config-0.20,tiff-3.7.4
安装目录选在/mnt/udisk/armhome 以下是编译过程:
export PATH=$PATH:/usr/local/arm/3.4.1/bin 设置交叉编译器所在路径的环境变量
export PREFIX=/mnt/udisk/armhome 设置目的路径的环境变量
export LDFLAGS=-L$PREFIX/lib 设置arm-linux-ld连接时需要的库文件所在路径的环境变量
export CFLAGS="-g -I$PREFIX/include" 设置arm-linux-gcc编译时需要的头文件所在路径的环境变量
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig 设置pkg-config命令执行时,需要的*.pc文件所在路径的环境变量
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=$PREFIX --cache-file=arm-linux.cache
make
make install
2.atk
./configure --host=arm-linux --prefix=$PREFIX
3. zlib
CC=arm-linux-gcc ./configure --prefix=$PREFIX --shared
4. jpeg-6b
./configure --prefix=$PREFIX--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 $PREFIX/man
mkdir $PREFIX/man/man1
make
make install
5. libpng
./configure -host=arm-linux --prefix=$PREFIX
6. expat
./configure -host=arm-linux --prefix=$PREFIX
7. freetype
./configure -host=arm-linux --prefix=$PREFIX
8. libxml
./configure --host=arm-linux --prefix=$PREFIX
9. fontconfig
export LIBXML2_CFLAGS=-I$PREFIXinclude/libxml2
export LIBXML2_LIBS="-L$PREFIX/lib -lxml2"
./configure --host=arm-linux --prefix=$PREFIX --with-freetype-config=$PREFIX/bin/freetype-config --with-arch=arm
10. tiff
./configure --host=arm-linux --prefix=$PREFIX --enable-shared --enable-static
11.DirectFB
./configure -host=arm-linux --prefix=$PREFIX --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 --enable-pdf --enable-ps --disable-svg --enable-png
13.pango
修改configure文件 与之前执行cairo的脚本configure参数是对应地,如果不对应,会出现can't link to pango的错误。
have_cairo=true
have_cairo_png=true
have_cairo_ps=true
have_cairo_pdf=true
have_cairo_freetype=true
./configure --host=arm-linux --prefix=$PREFIX --enable-cairo --without-x
14. gtk
export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"
export CPPFLAGS="-I$PREFIX/include"
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
./configure --host=arm-linux --prefix=$PREFIX --with-gdktarget=directfb --without-x
LDFLAGS中的-Wl,-rpath,$PREFIX/lib设定,解决了找不到pango的问题
设定了CPPFLAGS,解决了jpeglib.h找不到的问题,从而支持了jpeg
编译好以后,可以把/mnt/udisk/armhome里的文件拷贝到开发板上
要想gtk-demo可以正确执行,还需要在开发板系统
启动后,
执行/mnt/udisk/armhome/bin/pango-querymodules > /mnt/udisk/armhome/etc/pango/pango.modules 生成pango.modules文件
执行/mnt/udisk/armhome/bin/gdk_pixbuf.loaders > /mnt/udisk/armhome/etc/gtk-2.0/gdk-pixbuf.loaders 生成gdk-pixbuf.locaders文件
因为我用的是u盘保存的整个环境,所以在开发板上的路径就是/mnt/udisk/armhome 大家可以根据自己当前的环境做相应的修改。
用我上传的已编译好的环境armhome.rar就可以用了,但目前我的执行速度比较慢,不论gtk-demo 还是例程helloworld都需要等待一段时间才能出现,一开始会出现背景与水滴鼠标指针,但等一段就可以进界面了。我继续我的研究了,希望大家能够顺利进行环境的搭建,大家有空多交流,edit by __eabi |
|