最近要用C/C++编程控制pi的蓝牙模块实现数据传输,需要bluez这个linux的蓝牙协议栈工具。(具体参考:https://blog.csdn.net/talkxin/article/details/50609609)
1.找到Bluez官网(http://www.bluez.org/ )发现版本已经更新到5.50了。在安装前要安装一些依赖包。
sudo apt-get update
sudo apt-get upgrade //照例,要更新一下
sudo apt-get install libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libical-dev libreadline-dev libudev-dev libusb-dev make wget //依赖
2.下载最新版本的bluez:
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.xz
下载完bluez的源代码压缩包后解压:
tar -xvf bluez-5.50.tar.xz
进入这个解压后的目录:
cd bluez-5.50
进入RADME也可以看到安装编译说明:
所需的软件包上面应该已经下了,漏掉的接下来的configure可以自动识别出来,按提示运行config:
./configure --prefix=/usr --mandir=/usr/share/man
–sysconfdir=/etc --localstatedir=/var
结果有错:
看来还是要弄懂一下这些configure后面带的东西是干嘛的:
./configure -hlep
(1)找到:
也查到(这位博主:https://blog.csdn.net/yangzaiqiu1986814/article/details/50740024) 说–prefix可以配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share。
用了–prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
(2)手册文档
(3)还有
–sysconfdir:只读单机数据,一般用于存放php.ini之类的服务器配置文件。
–localstatedir:可改写的单一机器数据。
看来暂时后面的几个都没什么用,弄一个目录来放bluez:
接下来按照自己的家路径,重新运行configure:
./configure --prefix=/user /local/include/bluez-5.50
结束后编译:
make
安装:
sudo make install
这样就完成安装了。