2、交叉编译glib

2、交叉编译glib

目标平台:LOONGSON-1B开发板

内核:Linux 3.0

编译平台:ubuntu10.04

交叉工具链:gcc-3.4.6-2f

、简介

    Glib库是Linux平台下最常用的C语言函数库,它是GTK+和Gnome的基础,提供基本的容器、算法、对象系统、OSAPI的适配器等。

二、下载Glib源码包

    进入http://ftp.gnome.org/pub/gnome/sources/glib/下载一个Glib稳定版本源码包,这里选择glib-2.24.4.tar.gz。

三、交叉编译glib步骤

#tar jxf glib-2.24.2.tar.bz2

#cd glib-2.24.2

#./configure --prefix=/home/tools/gtk/glib_install --host=mipsel-linux CPPFLAGS='-I/home/tool/gtk/zlib_install/include' LIBS='-L/home/tool/gtk/zlib_install/lib'

出现错误:

checking for growing stack pointer... Configure:error:in '/home/tool/gtk/glib-2.24.2':

configure: error: cannot run test program while cross compiling

错误分析:由于configure不能为交叉编译检查glib_cv_stack_grows等变量,configure无法在目标机上运行测试程序,只能手动指定,将不能自检的变量全部写入cache中,并重新配置:

#echo ac_cv_type_long_long=yes>mipsel-linux.cache

#echo glib_cv_stack_grows=no>>mipsel-linux.chche

#echo glib_cv_uscore=no>>mipsel-linux.chche

#echo ac_cv_func_posix_getpwuid_r=yes>>mipsel-linux.cache

#echo ac_cv_func_posix_getgrgid_r=yes>>mipsel-linux.cache

#./configure --prefix=/home/tools/glib_install --host=mipsel-linux CPPFLAGS='-I/home/tool/gtk/zlib_install/include' LIBS='-L/home/tool/gtk/zlib_install/lib' --cache-file=mipsel-linux.cache

配置成功后,make && make install

make过程中出错错误giounix.c:185:错误:‘SSIZE_MAX’ undeclared(first used in this function) 

解决方法:在./glib/giounix.c加入SSIZE_MAX定义:

#define SSIZE_MAX 0x7fffffff

重新make && make install成功,在--prefix指定的目录下生成需要移植的bin、lib、include和shared等目录。

你可能感兴趣的:(ubuntu,移植,交叉编译,glib)