在RaspberryPi上使用gcc编译蓝牙问题

时间:2014-06-29 18:02:10

标签: c++ c gcc bluetooth raspbian

我正在使用Raspbian(Debian Wheezy)。我已经安装了

$ sudo apt-get install bluez bluez-tools bluez-dbg bluez-hcidump bluez-tools python-bluez libbluetooth-dev libbluetooth3 libbluetooth3-dbg

但是在尝试编译以下行时,它说它不知道库:

$ gcc scanbd.c -o scanbd
/tmp/ccl5BrFc.o: In function `main':
scanbd.c:(.text+0x84): undefined reference to `hci_get_route'
scanbd.c:(.text+0x90): undefined reference to `hci_open_dev'
scanbd.c:(.text+0x11c): undefined reference to `hci_inquiry'
scanbd.c:(.text+0x170): undefined reference to `ba2str'
scanbd.c:(.text+0x1c8): undefined reference to `hci_read_remote_name'
collect2: ld returned 1 exit status

这些是我在.c文件中的include语句:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/hci_lib.h>

有谁知道我做错了什么? 感谢

更新:事实证明我做了所有正确的事情,但我不得不关闭/拔掉RPi然后重新启动以使一切正常工作......之后-lbluetooth正在路径中。 谢谢你们

1 个答案:

答案 0 :(得分:0)

希望以下链接可以帮助您。

Linking with libbluetooth.so

编译时,请在scannbd.c之后输入参数-lbluetooth,如下所示:

例: gcc scanbd.c -lbluetooth -o scanbd