作者:Sam (甄峰) sam_code@hotmail.com
之前屡次编译BlueZ(http://blog.sina.com.cn/s/blog_602f87700100zb47.html). 中间有段时间以为不会再编译BlueZ了,其一是Android使用自己的Blue协议栈(BluetDroid)取代了BlueZ。其二是Bluetooth不再是工作重心。没想到搞ROS后,又回到Linux环境,再次需要编译Bluez. 这个令人不快的任务又一次放在面前。
0. Download BlueZ
http://www.bluez.org/
1. X86 Version make
sudo apt-get install systemd
sudo apt-get install libical-dev
sudo apt-get install libudev-dev
$./configure
$make
注意,如果没有 --enable-library,不会编译出动态或静态库的。
$./configure --enable-shared --enable-static --enable-library
$make clean;make
可以看到,库被放在了:
./lib/.libs/libbluetooth.so
./lib/.libs/libbluetooth.a
2. CrossCompile:
之前屡次编译BlueZ(http://blog.sina.com.cn/s/blog_602f87700100zb47.html). 中间有段时间以为不会再编译BlueZ了,其一是Android使用自己的Blue协议栈(BluetDroid)取代了BlueZ。其二是Bluetooth不再是工作重心。没想到搞ROS后,又回到Linux环境,再次需要编译Bluez. 这个令人不快的任务又一次放在面前。
0. Download BlueZ
http://www.bluez.org/
1. X86 Version make
sudo apt-get install systemd
sudo apt-get install libical-dev
sudo apt-get install libudev-dev
$./configure
$make
注意,如果没有 --enable-library,不会编译出动态或静态库的。
$./configure --enable-shared --enable-static --enable-library
$make clean;make
可以看到,库被放在了:
./lib/.libs/libbluetooth.so
./lib/.libs/libbluetooth.a
2. CrossCompile:
2.0: 交叉编译准备:
编译之前,依例看看README:
编译之前,依例看看README:
In order to compile Bluetooth utilities you need following
software packages:
- GCC compiler
- GLib library
- D-Bus library
- udev library (optional)
- readline (command line clients)
所以在交叉编译中,估计至少要交叉编译GLib和D-BUS。
2.1:glib编译:
echo glib_cv_uscore=no>>arm-linux.cache
echo glib_cv_stack_grows=no>>arm-linux.cache
CC=arm-linux-gnueabihf-gcc ./configure --host=arm-linux
--cache-file=arm-linux.cache --enable-libmount=no
--with-pcre=no
make