Я использую 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
Это те заявления include, которые у меня есть в моем файле.c:
#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 был на пути. Спасибо, парни
Надежды ниже ссылок могут вам помочь.
Когда вы компилируете, поставьте параметр -lbluetooth после scannbd.c, как показано ниже:
Пример: gcc scanbd.c -lbluetooth -o scanbd
-lbluetooth
к вашей команде компилятора, и неопределенные ошибки ссылок исчезнут.