对于嵌入式开发人员来说,ubuntu 是一个应用范围相当广的linux操作系统了。通过该开源系统,实现一些列我们所想实现的众多开发。然而纯净的ubuntu只是携带了很少的开源库,要想在实际开发中使用到适合的开源库或资源,我们就要在我们的ubuntu系统中移植我们所需要的资源库。
glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性。可以在多个平台下使用,比如Linux、Unix、Windows等。glib库封装了基础C语言的众多功能,使得开发人员不用浪费过多的精力在基础功能实现上,该库包含了很好用的线程,线程池,队列,同步队列,内存管理,io通道,错误报告等众多功能,我们可以在移植好glib库后拿来即用,省去好多麻烦。
ubuntu移植glib库方法步骤:
- 下载源码包并解压
百度盘连接: https://pan.baidu.com/s/14NyovYt-0GEuJ6MyLo_PVQ
提取码:udle
解压命令: tar -xvf glib-2.57.3 - 进入源码解压路径,直接对该库进行配置 ./configure
发现配置文件不适用 ,需要重新配置以下此配置文件 - 下载一个自动配置工具,自动编译生成configure文件
apt-get install autoconf 安装自动编译工具
autoconf configure.ac 利用自动配置工具生成configure
提示错误: configure.ac:66: error: possibly undefined macro:
AM_INIT_AUTOMAKE If this token and others are legitimate,
please use m4_pattern_allow. See the Autoconf documentation. - 下载一些列需要的文件
autoreconf --install - 重新生成configure文件
autoconf configure.ac
成功生成configure文件 - 重新配置glib库 配置文件
./configure
报错:No package ‘libffi’ found - 下载lifffi装到系统上,
解压 “lifffi”源码包并安装
autoconf configure.ac 生成configure执行文件
./configure
make 报错:makeinfo: 未找到命令
apt-get install texinfo
makeinstall - 重新配置glib库配置文件
./configure
报错:error: *** Could not find libmount - 下载libmount源码并安装
下载libmount源码 apt-get source libmount-dev
配置libmount配置文件
./cdonfigure
报错: configure: error: ncurses or ncursesw selected, but library not found (–without-ncurses to disable)
apt-get install libncurses5-dev libncursesw5-dev 安装库
配置libmount配置文件
./cdonfigure 成功
make 报错: undefined reference tosysfs_init' ./configure --prefix=/home/zhoudy/util-linux-2.20.1/ --target=i686 --host=i686 make 报错:undefined reference to
get_linux_version’
发现安装依赖库还是比较多的,所以尝其他方法。
可以通过直接加载库文件的形式来使用glib库,有可能由于2.57.3 的版本功能完善,所以安装依赖比较多,对于使用者来说,一般的功能没什么差别,如果想知道版本之间的差别,可以在官网上看介绍,合理适用版本。
在网上查看资料,发现glib可以通过直接引用其头文件的方式加以使用,,这样的方式极大的方便了开发者的开发,省去了配置时间,非常实用。我自己下载了glib_2.44.1 版本用于安装。
装载glib_2.44.1
-
将glib库头文件直接拷贝到用户头文件文件夹内,或者编译头文件路径加上该路径
cp -r /usr/local/include/glib-2.0/* /usr/include/
cp /usr/local/lib/glib-2.0/include/glibconfig.h /usr/include/ -
编写一个小程序哦那个来测试glib是否可用:
#include <glib.h>
int main()
{
g_printf(“test glib\n”);
return 0;
} -
编译程序测试:
gcc test1.c -o test -lglib-2.0 -levent
运行测试文件,./test 发现能够打印出test glib ,证明glib可用。