最近在看bluez代码,想编译个例子来玩一下,然后bluez里的例子会用到 libglib-2.0 库里的接口,于是开始了漫长的编译 arm 版本的 libglib-2.0,Linux 系统有时就是很麻烦,要编译一个库,结果发现依赖一大堆库,你需要先把依赖的库成功装好才能正常进行下去。
首先想要成功编译 glib2.0 库,则需要提前安装两个依赖库,这一步是必须的,即使现在不装等到编译 glib2.0 的时候会失败的。
1,yum install libffi-dev (这里需要注意,如果是需要编译arm版本,还得下载源码安装)
2,yum install -y glibc-devel
特别是第2个,网上搜了大部分都是ubuntu的,人家是用 apt-get libglib2.0-dev,这个软件包名 libglib2.0-dev 在 Centos 上是不对的,真是坑啊。

我的 configure 命令行是这样的:
./configure --prefix=/usr/local/glib --host=arm-himix200-linux --cache-file=arm-himix200-linux.cache CC="arm-himix200-linux-gcc" LIBFFI_CFLAGS=/usr/include/
1, extra flags to get ANSI library prototypes... configure: error: cannot test program while cross compling

这个错误也不知道是什么原因导致的,网上搜了很多,其中看到有人说可能是下载的glib-2.0源码版本过低,当时我也不记得下载的哪个版本了,于是我先了一个比较高的版本:glib-2.30.2.tar.xz
创建一个空目录进行下载:wget http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.30/glib-2.30.2.tar.xz ;确实用这个版本时,没有出现上面这个错误,但出现了其他错误。
2, Could not find a glib-genmarshal in your PATH

文章描述了在编译Bluez代码时遇到的问题,主要集中在交叉编译libglib-2.0及其依赖库libffi和zlib上。作者详细列举了配置命令、遇到的错误以及解决方法,包括缺少库、头文件和库文件格式不匹配等。最终,经过一系列的源码下载、编译和安装,作者成功解决了所有问题。
最低0.47元/天 解锁文章
1162

被折叠的 条评论
为什么被折叠?



