作者: Sam (甄峰) sam_code@hotmail.com
之前把BlueZ 5.43在Fedora20上编译 X86
版本的过程一代而过,其实这里面还是有内容的。这次把它补上。
0. Download
:
http://www.bluez.org/
下载最新版本:当前是Bluez 5.43
1. 开始编译:
1.1:首次尝试:
$ ./configure
configure: error: GLib >= 2.28 is required
使用$rpm -qa |grep glib
glib-1.2.10-40.fc20.x86_64
可以看到,并非没有安装glib, 而是glib版本不够高。当前系统安装版本为1.2.10. 但BlueZ
需要的版本是2.28以上。
1.2: 开始编译Glib:
1.2.1:下载编译glib:
与之前的下载不同(git clone https://github.com/GNOME/glib.git),
这次下载是在:
https://git.gnome.org/browse/glib/
选择直接下载tar.xz文件,或者:
git
clone https://git.gnome.org/browse/glib/
$./autogen.sh
报错如下:
You don't have gtk-doc installed, and thus won't be able to
generate the documentation.
./autogen.sh: line 14: gtk-doc.make: Permission
denied
指出没有安装gtk-doc, 那就安装之。
$sudo yum install gtk-doc
再次运行$./autogen.sh
报错如下:
checking for LIBFFI... no
configure: error: Package requirements (libffi >= 3.0.0)
were not met:
No package 'libffi' found
安装之:
$sudo yum install libffi
#sudo yum install libffi-devel
再次运行$./autogen.sh
报错如下:
checking for LIBMOUNT... no
checking libmount/libmount.h
usability... no
checking libmount/libmount.h
presence... no
checking for libmount/libmount.h...
no
configure: error: *** Could not
find libmount
sudo yum install
libmount
sudo yum install libmount-devel
$./configure
$make; make install
glib编译成功。
可以看到, glib-2.0.pc被放到/usr/local/lib/pkgconfig中去了。所以要告知pkg-config,从哪里找这个pc文件:
export
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
此后,则不再报有关Glib的错误了。
1.3:安装Dbus,
libudev-devel,:
继续编译,进入bluez目录
$./configure
configure: error: D-Bus >= 1.6 is required
同理,需要编译D-Bus.
$sudo yum install dbus
$sudo yum install dbus-devel
之后还有:
sudo yum install libudev-devel
sudo yum install libical-devel
sudo yum install readline-devel
最后:
./configure --enable-library
make
即可成功编译出x86-64版本库。