Skąd wziąć Bluetooth / Bluetooth.h dla Raspberry Pi?

Dec 13 2020

To głupie pytanie. Ale nie mogę znaleźć na to rozwiązania. Próbuję zbudować aplikację BLE w odniesieniu do tego samouczkahttps://people.csail.mit.edu/albert/bluez-intro/c404.html. Kompiluję krzyżowo dla Raspberry Pi3 z mojego komputera z systemem Windows. Pobrałem toolchain zhttps://github.com/raspberrypi/tools. Sprawdziłem łańcuch narzędzi, kompilując prostą aplikację HelloWorld i uruchamiając ją z RaspberryPi. Teraz, kiedy próbuję skompilować powyższy kod, pojawia się błąd

/mnt/c/Study/RaspberryPi/main.c:5:33: fatal error: bluetooth/bluetooth.h: No such file or directory
 #include <bluetooth/bluetooth.h>

Rozumiem, że Bluetooth.h nie jest moim systemem. Moje pytanie brzmi, gdzie mogę to zdobyć? Tak, żebym mógł skompilować krzyżowo z Windows. Czy muszę w tym celu pobrać pakiet SDK? w razie potrzeby, gdzie mogę to dostać?

Odpowiedzi

5 DmitryGrigoryev Dec 14 2020 at 18:56

Możesz użyć wyszukiwarki Debiana (która jest dystrybucją opartą na Raspberry Pi OS) , aby zlokalizować dowolny plik:

Po znalezieniu pakietu zawierającego niezbędne pliki możesz zainstalować ten sam pakiet na Pi za pomocą apt-getlub pobrać go ręcznie z http://archive.raspbian.org/. Możesz także pobrać pakiet Debiana bezpośrednio z wyników wyszukiwania, ale pamiętaj, że niektóre pakiety w systemie operacyjnym Pi mają subtelne różnice w stosunku do swoich odpowiedników w Debianie.

Jeśli chcesz pobrać pliki z pakietu bez instalowania go, pobierz go i rozpakuj potrzebne pliki za pomocą arpolecenia lub 7zip.

5 Seamus Dec 14 2020 at 07:36

To wcale nie jest głupie pytanie. Nie mogłem od razu znaleźć dobrego wyjaśnienia, jak zainstalować pakiety ze źródła. Jednak metoda prób i błędów przyniosła takie rozwiązanie:

$ apt-cache search bluez

Dał listę podejrzanych , z których jeden był:

libbluetooth-dev - pliki programistyczne do korzystania z biblioteki Bluetooth BlueZ Linux

Co wyglądało na rozsądny wybór.

$ sudo apt-get install libbluetooth-dev
...
The following additional packages will be installed:
  libbluetooth3
The following NEW packages will be installed:
  libbluetooth-dev libbluetooth3  

Następnie kod w samouczku kompiluje się i uruchamia:

$ gcc -o simplescan simplescan.c -lbluetooth $ ./simplescan
CC:6D:A0:64:36:32  Roku Player. 

Co jest poprawną odpowiedzią w moim mieszkaniu. Jednak nie jest to pełna odpowiedź, ponieważ inne urządzenia wyposażone w BT (np. Mój iPhone ) są dostępne.

UWAGI:

  1. Pamiętaj, aby zaktualizować i zaktualizować system przed zainstalowaniem nowych pakietów!
  2. Odpowiedź Dmitry'ego - używając wyszukiwarki Debiana - jest lepszą odpowiedzią na pytanie OP . Wydaje mi się, że nadal można się domyślać , ale zdecydowanie pomaga to zawęzić pole.
  3. Dla tych, którzy chcą budować i instalować pakiety ze źródeł natywnie , wydaje się, że istnieją opcje apt, które to obsługują.