จะหา Bluetooth / Bluetooth.h สำหรับ Raspberry Pi ได้ที่ไหน
นี่เป็นคำถามโง่ ๆ แต่ฉันไม่สามารถหาทางแก้ไขได้ ฉันกำลังพยายามสร้างแอปพลิเคชัน BLE โดยอ้างอิงจากบทช่วยสอนนี้https://people.csail.mit.edu/albert/bluez-intro/c404.html. ฉันกำลังรวบรวมข้ามสำหรับ Raspberry Pi3 จาก Windows PC wsl ของฉัน ฉันดาวน์โหลด toolchain จากไฟล์https://github.com/raspberrypi/tools. และฉันได้ตรวจสอบ toolchain โดยรวบรวมแอปพลิเคชัน HelloWorld แบบธรรมดาและเรียกใช้จาก RaspberryPi ตอนนี้เมื่อฉันพยายามรวบรวมโค้ดด้านบนฉันได้รับข้อผิดพลาด
/mnt/c/Study/RaspberryPi/main.c:5:33: fatal error: bluetooth/bluetooth.h: No such file or directory
#include <bluetooth/bluetooth.h>
ฉันเข้าใจว่า Bluetooth.h ไม่ใช่ระบบของฉัน คำถามของฉันคือฉันจะไปได้ที่ไหน? เพื่อให้ฉันสามารถข้ามคอมไพล์จาก windows ได้ ฉันต้องดาวน์โหลด sdk หรือไม่ ถ้าจำเป็นฉันจะหาได้ที่ไหน?
คำตอบ
คุณสามารถใช้ Debian (ซึ่งเป็น distro ราสเบอร์รี่ Pi OS อยู่บนพื้นฐาน) เครื่องมือค้นหาเพื่อค้นหาไฟล์ใด ๆ
เมื่อคุณพบแพคเกจที่มีไฟล์ที่จำเป็นคุณสามารถติดตั้งแพ็กเกจเดิมใน Pi ด้วยหรือดาวน์โหลดได้ด้วยตนเองจากapt-get http://archive.raspbian.org/นอกจากนี้คุณยังสามารถคว้าแพ็คเกจ Debian ได้โดยตรงจากผลการค้นหา แต่ระวังว่าบางแพ็คเกจใน Pi OS มีความแตกต่างเล็กน้อยกับคู่ของ Debian
หากคุณต้องการรับไฟล์จากแพ็คเกจโดยไม่ต้องติดตั้งให้ดาวน์โหลดและแตกไฟล์ที่คุณต้องการด้วยarคำสั่งหรือ 7zip
ไม่ใช่คำถามโง่ ๆ เลย ฉันไม่พบคำอธิบายที่ดีในทันทีเกี่ยวกับวิธีการติดตั้งแพ็คเกจจากแหล่งที่มา อย่างไรก็ตามการทดลองและข้อผิดพลาดบางอย่างทำให้เกิดการแก้ปัญหานี้:
$ apt-cache search bluez
ให้รายชื่อผู้ต้องสงสัยซึ่งหนึ่งในนั้นคือ:
libbluetooth-dev - ไฟล์การพัฒนาสำหรับการใช้ไลบรารี BlueZ Linux Bluetooth
ซึ่งดูเหมือนเป็นทางเลือกที่สมเหตุสมผล
$ sudo apt-get install libbluetooth-dev
...
The following additional packages will be installed:
libbluetooth3
The following NEW packages will be installed:
libbluetooth-dev libbluetooth3
หลังจากนั้นโค้ดในบทช่วยสอนจะรวบรวมและเรียกใช้:
$ gcc -o simplescan simplescan.c -lbluetooth $ ./simplescan
CC:6D:A0:64:36:32 Roku Player.
ซึ่งเป็นคำตอบที่ถูกต้องในแฟลตของฉัน อย่างไรก็ตามมันไม่ใช่คำตอบที่สมบูรณ์เนื่องจากอุปกรณ์ที่ติดตั้ง BT อื่น ๆ (เช่นiPhoneของฉัน) กำลังวางอยู่
หมายเหตุ:
- อย่าลืมอัปเดตและอัปเกรดระบบของคุณก่อนติดตั้งแพ็คเกจใหม่!
- มิทรีของคำตอบ - ใช้เครื่องมือค้นหาของ Debian - เป็นคำตอบที่ดีสำหรับคำถามของ OP สำหรับฉันแล้วดูเหมือนว่าอาจจะยังมีการคาดเดาอยู่บ้างแต่มันช่วย จำกัด ขอบเขตได้อย่างแน่นอน
- สำหรับผู้ที่ต้องการที่จะสร้างและติดตั้งแพคเกจจากแหล่งกำเนิดก็ดูเหมือนว่ามีตัวเลือกที่ฉลาดที่ให้การสนับสนุนว่า