这里需要强调一下:libc、glibc、glib 是不同的库!
glibc 和 libc 都是 Linux 下的 C 函数库,而 glib 是 GTK+的基础库
libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GUN C 函数库。
虚拟机: VMware® Workstation,版本:9.0.2 build-1031769
FEDORA:14
MYD-C287 开发板:采用飞思卡尔 imx.287ARM 9 芯片,Linux2.6.35 内核版本,Uboot 2013.03,
gcc-4.4.4 交叉编译链
我们最终目的是在我们的开发板上能够执行使用了glib 库的可执行文件。
要达到这个目的我们需要几个步骤:
1、需要使用交叉编译链交叉编译 glib 库;
2、将生成的动态库加入到文件系统的 lib 目录中;
3、使用交叉编译出来的 glib 库,交叉编译.c 文件,然后在开发板中执行文件;
安装前准备:
glib 源码包下载地址:http://ftp.gnome.org/pub/gnome/sources/glib/2.24/
这里我们使用的是 glib-2.22.5.tar.gz
libffi 源码包下载地址:https://www.sourceware.org/libffi/
libffi 是 glib 的依赖库,所以需要先交叉编译这个库,我们使用的是libffi-3.2.1.tar.gz
pkg 的安装:
pkg-config 是一个很好的文本替换命令,主要用于编译命令上,FEDORA 中已安装过该命令。
在交叉编译 glib 前我们需要先交叉编译 glib 的依赖库 libffi
1、libffi 的安装
ffi 是 glib 依赖的一个库,在交叉编译以前需要先交叉编译libffi
将 libffi-3.2.1.tar.gz甩入 FEDORA 的/home/embedclub/local/arm,目录中。
解压缩源码:tar zxvf libffi-3.2.1.tar.gz
并建立安装路径: /home/embedclub/local/arm/glib
在解压缩文件目录 libffi-3.2.1 中,直接开始配置操作键入命令:
CC=arm-none-linux-gnueabi-gcc ./configure --prefix=/home/embedclub/local/arm/glib/ffi/
--host=arm-none-linux-gnueabi
应该不会遇到任何问题,然后就会生成我们需要的Makefile 文件。
然后就是三部曲中的
为了更好地在编译时使用自定义安装路径里的库,我们使用 pkg-config 来辅助我们编译 glib,