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 中的时间编程和实现原理一—— Linux 应用层的时间编程