Linux 中的 bluetooth/bluetooth.h 位于何处?

Posted

技术标签:

【中文标题】Linux 中的 bluetooth/bluetooth.h 位于何处?【英文标题】:Where is the bluetooth/bluetooth.h located in Linux? 【发布时间】:2014-06-19 15:44:04 【问题描述】:

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

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

我确定蓝牙加密狗运行正常,并且我已成功构建 Bluez。

更新

就我而言,我在 /user/include/bluetooth 文件夹中找到了 bluetooth.h

【问题讨论】:

所以你知道 bluetooth.h 在哪里,但你的 c 编译器不知道。您需要在编译器目录搜索中包含 /user/include/bluetooth 这不一定是您面临的问题,但在某些 linux 发行版上,有提供运行时支持的软件包的二进制版本,然后是一个单独的“-dev”软件包,其中包含您需要的内容将您自己的程序与提供的库链接起来。也许您没有安装 bluez 的 -dev 软件包。 (是的,我知道你找到了一个标题 - 但可能还有更多问题) @ChrisStratton 是的。我想你是对的。将尝试添加开发库。 @user3288829 会不会太乏味了?我的意思是,如果我稍后更改路径,我必须更改每个文件的包含路径。 希望/user/include/bluetooth 是您帖子中的错字。如果没有,那么您的问题可能是您意外地在 /user 下安装了属于 /usr 的东西,它应该作为标准包含路径的一部分被拾取。 【参考方案1】:

你需要安装 libbluetooth-dev 包来编译你的代码

sudo apt-get install libbluetooth-dev

那应该安装蓝牙头文件。

【讨论】:

不安装这个文件可以解决这个问题吗?我只需要编译,不允许安装。 是的,下载并解压 .deb 文件,并在配置 BlueZ 时为 CLFAGS=-I/path/to/libbluetooth-dev/headerfiles 提供包含目录 我在 Qt 中使用蓝牙 API,而在 linux 上又使用 bluez,你知道我需要做什么才能将 bluez 链接到 Qt 吗?谢谢。我想我仍然必须使用您发布的线路执行安装。 @zadane:我不知道,但你应该试试 Qt Bluetooth doc.qt.io/qt-5/qtbluetooth-index.html 提供的解决方案对我不起作用。原因是官方源码发行版的make文件在/usr/include目录下搜索,同时header在/usr/include/bluetooth目录下。我不得不将蓝牙目录中的所有标题复制到/usr/include。我希望这会有所帮助!【参考方案2】:

对于 Fedora,您可以使用:

sudo dnf install bluez-libs-devel

【讨论】:

【参考方案3】:

在 CentOS 7 上:

sudo yum install bluez-libs-devel

【讨论】:

以上是关于Linux 中的 bluetooth/bluetooth.h 位于何处?的主要内容,如果未能解决你的问题,请参考以下文章

怎么解决linux中的TXT在win7中的排序问题,linux中的换行在win7中不适用了。

linux shell 中的sleep命令

Linux中的链表

浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程

Linux 学习总结(88)—— Linux 系统中的 Swap 交换分区总结

详解Linux中的cat文本输出命令用法