在Linux中,蓝牙/bluetooth.h文件位于哪里?

57

我想基于BlueZ构建一个C文件,但我的系统中似乎没有bluetooth.h文件。

fatal error: bluetooth/bluetooth.h: No such file or directory

我确信蓝牙适配器正在正确运行,并且我已经成功地构建了Bluez。

更新

对于我的情况,我发现bluetooth.h在/user/include/bluetooth文件夹中。


你知道bluetooth.h在哪里,但是你的C编译器不知道。你需要在编译器目录搜索中包含/user/include/bluetooth。 - user3288829
这不一定是你面临的问题,但在某些Linux发行版中,有提供运行时支持的二进制版本包,以及一个单独的“-dev”包,其中包含你需要链接自己的程序所需的库。也许你没有安装bluez的-dev包。(是的,我知道你找到了一个头文件 - 但可能还有更多的谜题) - Chris Stratton
@ChrisStratton 是的。我认为你是对的。会尝试添加开发库。 - Yiding
1
@user3288829,这会不会太繁琐了?我的意思是,如果我稍后更改路径,我必须更改每个文件的包含路径。 - Yiding
4
希望 /user/include/bluetooth 只是你发布帖子时的笔误。如果不是,那么你可能遇到了一个问题,即你意外地安装了一些应该属于 /usr 的东西,而它应该作为标准包含路径的一部分被捕获。 - Chris Stratton
3个回答

115

为了编译您的代码,您需要安装libbluetooth-dev软件包

sudo apt-get install libbluetooth-dev

这应该会安装蓝牙头文件。


有没有可能在不安装这个文件的情况下解决这个问题?我只需要编译,不允许我安装它。 - Black
4
是的,请下载并提取.deb文件,并在配置BlueZ时提供包含目录到CLFAGS=-I/path/to/libbluetooth-dev/headerfiles。 - Rahul R Dhobi
我正在使用Qt中的蓝牙API,这些API在Linux上使用bluez,你知道我需要做什么才能将bluez链接到Qt吗?谢谢。我想我仍然需要执行你发布的命令行安装。 - zar
@zadane:我其实不知道,但你可以尝试使用Qt蓝牙库http://doc.qt.io/qt-5/qtbluetooth-index.html - Rahul R Dhobi
1
你这样做把一切都搞砸了。正确的包含方式是 #include <bluetooth/bluetooth.h> - OrangeDog
显示剩余2条评论

10

对于 Fedora 操作系统,您可以使用以下命令:

sudo dnf install bluez-libs-devel

1
在CentOS 7上:
sudo yum install bluez-libs-devel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接