arm-linux-gcc编译gtk程序,DirectFB和Gtk+的交叉编译过程记录

以下是参考DirectFB中文社区中几个贴子的步骤,在自己的机子上做了些更改,

还没进行测试,只是编译通过,有空再加到开发板上

#########################################################################

主机开发环境是Ubuntu8.04   目标机是sbc2410   交叉编译器是3.4.1 安装目录选在/data/gtk

用到以下源码包:

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

以下是编译过程:

export PATH=$PATH:/usr/local/arm/3.4.1/bin              设置交叉编译器所在路径的环境变量

export PREFIX=/data/gtk                        设置目的路径的环境变量

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 (同上)

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=$PREFIX --without-x --disable-xlib --disable-xlib-xrender --enable-directfb --enable-freetype --disable-win32 --enable-pdf --enable-ps --disable-svg --enable-png

13.pango

echo ac_cv_cairo_ft_scaled_font_lock_face=yes>arm-linux.cache

echo ac_cv_lib_cairo_cairo_surface_write_to_png=yes>>arm-linux.cache

echo ac_cv_path_FREETYPE_CONFIG=/data/gtk/bin/freetype-config>>arm-linux.cache

echo ac_cv_have_x=no>>arm-linux.cache

echo ac_cv_lib_freetype_FT_Get_Next_Char=yes>>arm-linux.cache

修改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 --cache-file=arm-linux.cache

14. gtk

export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"

export CPPFLAGS="-I$PREFIX/include"

echo ac_cv_path_GTK_UPDATE_ICON_CACHE=/usr/bin/gtk-update-icon-cache>arm-linux.cache

echo ac_cv_path_GDK_PIXBUF_CSOURCE==/usr/bin/gdk-pixbuf-csource>>arm-linux.cache

./configure --host=arm-linux --prefix=$PREFIX --with-gdktarget=directfb --without-x --cache-file=arm-linux.cache

LDFLAGS中的-Wl,-rpath,$PREFIX/lib设定,解决了找不到pango的问题

设定了CPPFLAGS,解决了jpeglib.h找不到的问题,从而支持了jpeg

########################################################################

编译过程中会提示缺少一些命令,到源中找到相应的包安装即可,至此所有源码包的编译全部通过0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值