Wo befindet sich die bluetooth/bluetooth.h unter Linux?
Lesezeit: 2 Minuten
Yiding
Ich möchte eine AC-Datei basierend auf BlueZ erstellen, aber es scheint keine bluetooth.h-Datei in meinem System zu sein.
fatal error: bluetooth/bluetooth.h: No such file or directory
Ich bin mir sicher, dass der Bluetooth-Dongle korrekt läuft, und ich habe Bluez erfolgreich erstellt.
Aktualisieren
In meinem Fall finde ich die bluetooth.h im Ordner /user/include/bluetooth
Sie wissen also, wo bluetooth.h ist, aber Ihr C-Compiler nicht. Sie müssen /user/include/bluetooth in die Verzeichnissuche Ihres Compilers aufnehmen
– Benutzer3288829
2. Mai 2014 um 21:24 Uhr
Dies ist nicht unbedingt das Problem, mit dem Sie konfrontiert sind, aber bei einigen Linux-Distributionen gibt es die Binärversion von Paketen, die Laufzeitunterstützung bieten, und dann ein separates “-dev” -Paket, das alles enthält, was Sie zum Verknüpfen Ihrer eigenen Programme mit bereitgestellten Bibliotheken benötigen. Vielleicht haben Sie das -dev-Paket für bluez nicht installiert. (Ja, ich weiß, dass Sie einen Header gefunden haben – aber vielleicht steckt noch mehr hinter dem Rätsel)
– Chris Stratton
2. Mai 2014 um 21:51 Uhr
@ChrisStratton Ja. Ich glaube, Du hast recht. Werde versuchen, die Dev-Bibliothek hinzuzufügen.
– Yiding
4. Mai 2014 um 18:10 Uhr
@user3288829 wird das zu langweilig? Ich meine, wenn ich den Pfad später ändere, muss ich den Include-Pfad jeder Datei ändern.
– Yiding
4. Mai 2014 um 18:11 Uhr
Hoffentlich /user/include/bluetooth ist ein Tippfehler in deinem Beitrag. Wenn nicht, ist es wahrscheinlich, dass Sie versehentlich etwas unter /user installiert haben, was unter /usr gehört, wo es als Teil der standardmäßigen Include-Pfade abgeholt werden sollte.
– Chris Stratton
4. Mai 2014 um 18:28 Uhr
Sie müssen das Paket libbluetooth-dev installieren, um Ihren Code zu kompilieren
sudo apt-get install libbluetooth-dev
Das sollte die Bluetooth-Header-Dateien installieren.
Kann man das Problem lösen ohne diese Datei zu installieren? Ich muss nur kompilieren, ich darf es nicht installieren.
– Schwarz
6. August 2015 um 13:16 Uhr
Ja, laden Sie die .deb-Datei herunter und extrahieren Sie sie und stellen Sie das Include-Verzeichnis für CLFAGS=-I/path/to/libbluetooth-dev/headerfiles bereit, während Sie BlueZ konfigurieren
– Rahul R. Dhobi
7. August 2015 um 4:20 Uhr
Ich verwende Bluetooth-APIs in Qt, das wiederum Bluez unter Linux verwendet. Wissen Sie, was ich tun muss, um Bluez mit Qt zu verknüpfen? Danke. Ich kann mir vorstellen, dass ich noch install mit der von Ihnen geposteten Zeile ausführen muss.
Sie wissen also, wo bluetooth.h ist, aber Ihr C-Compiler nicht. Sie müssen /user/include/bluetooth in die Verzeichnissuche Ihres Compilers aufnehmen
– Benutzer3288829
2. Mai 2014 um 21:24 Uhr
Dies ist nicht unbedingt das Problem, mit dem Sie konfrontiert sind, aber bei einigen Linux-Distributionen gibt es die Binärversion von Paketen, die Laufzeitunterstützung bieten, und dann ein separates “-dev” -Paket, das alles enthält, was Sie zum Verknüpfen Ihrer eigenen Programme mit bereitgestellten Bibliotheken benötigen. Vielleicht haben Sie das -dev-Paket für bluez nicht installiert. (Ja, ich weiß, dass Sie einen Header gefunden haben – aber vielleicht steckt noch mehr hinter dem Rätsel)
– Chris Stratton
2. Mai 2014 um 21:51 Uhr
@ChrisStratton Ja. Ich glaube, Du hast recht. Werde versuchen, die Dev-Bibliothek hinzuzufügen.
– Yiding
4. Mai 2014 um 18:10 Uhr
@user3288829 wird das zu langweilig? Ich meine, wenn ich den Pfad später ändere, muss ich den Include-Pfad jeder Datei ändern.
– Yiding
4. Mai 2014 um 18:11 Uhr
Hoffentlich
/user/include/bluetooth
ist ein Tippfehler in deinem Beitrag. Wenn nicht, ist es wahrscheinlich, dass Sie versehentlich etwas unter /user installiert haben, was unter /usr gehört, wo es als Teil der standardmäßigen Include-Pfade abgeholt werden sollte.– Chris Stratton
4. Mai 2014 um 18:28 Uhr