Pi - 启用 dbus 进行开发

Posted

技术标签:

【中文标题】Pi - 启用 dbus 进行开发【英文标题】:Pi - enable dbus for development 【发布时间】:2018-01-31 06:49:39 【问题描述】:

我是在 linux 上开发的新手。我想编写在 dbus 上对话的应用程序,因此我目前正在学习与 dbus 交互的基本概念。

我正在开发一个新的树莓派 3;我可以在文件系统的不同位置看到 dbus 文件夹。然而,当我 #include <dbus/bus.h> 我已经收到一个错误:“未解析的包含文件”这让我相信没有为 dbus 启用库文件或开发人员选项?

我想了解如何启用 dbus 进行开发?

提前致谢。

2017 年 8 月 24 日编辑: 我相信我有必要的库文件,即(但不限于...)

/usr/lib/arm-linux-gnueabihf/libdbus-1.a

/usr/include/dbus-1.0/dbus/dbus.h

但是我如何在远程主机(pi)上开发时将我的 NetBeans IDE 指向它们??

2017 年 8 月 28 日编辑: 安装 dbus-dev 库后。我删除并重新添加了我的树莓派作为我的 NetBeans IDE 上的本地主机。 现在,当我

#include <dbus/dbus.h> 

或者

#include <dbus.h>

我收到错误: 致命错误:dbus/dbus.h:没有这样的文件或目录

所以,我最终不得不在我的 netbeans 项目属性 - 构建 - c 编译器 - 包含目录中添加 /usr/include/dbus-1.0;/usr/lib/arm-linux-gnueabihf/dbus-1.0/include 。 ..我希望可以这样做,记住我正在远程主机上工作...

此项目现在已成功构建。我已经在我的远程主机属性上启用了 X11 转发。但是,运行时我收到以下信息: /usr/bin/dbus-launch 异常终止并出现以下错误:自动启动错误:X11 初始化失败。

【问题讨论】:

您是在设备本身上编译吗?开发文件是否默认安装在操作系统上?如果没有,那么“sudo apt-get install libdbus-1-dev”(或类似的东西)应该会有所帮助。也就是说,如果您正在开始一个新项目,我建议不要使用 libdbus:它的级别非常低,坦率地说,使用它很痛苦:GDBus(来自 libglib2.0-dev)是一个好得多的。 是的,我正在设备本身上进行编译。我不确定开发文件是否在那里,这确实是我问题的症结所在。在安装 libdbus-dev 或 libglib-dev 之前是否需要卸载 dbus?感谢您的回复。 不,-dev 包包含开发所需的标头(和一些库符号链接),并且除了实际库之外还安装。 apt-cache policy libdbus-1-dev 应该告诉你是否安装了 libdbus 开发包 这是您提供的命令的输出: apt-cache policy libdbus-1-dev libdbus-1-dev: Installed: (none) Candidate: 1.8.22-0+deb8u1 Version table: 1.8.22-0+deb8u1 0 500 mirrordirector.raspbian.org/raspbian jessie/main armhf 包 我做了以下 sudo apt-get install -y libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev 现在我有了,apt-cache policy libdbus -1-dev libdbus-1-dev:已安装:1.8.22-0+deb8u1 候选:1.8.22-0+deb8u1 版本表:*** 1.8.22-0+deb8u1 0 500 mirrordirector.raspbian.org/raspbianjessie/main armhf包 100 /var/lib/dpkg/status 【参考方案1】:

我想发布我自己对这个问题的答案,因为我觉得它基本上已经解决了,我的问题现在已经演变成别的问题了:

克服错误:致命错误:dbus/dbus.h: No such file or directory

我最终不得不在我的 netbeans 项目属性 - 构建 - c 编译器 - 包含目录中添加 /usr/include/dbus-1.0;/usr/lib/arm-linux-gnueabihf/dbus-1.0/include。

这个项目现在成功构建到远程主机(pi)上。

【讨论】:

我想知道是否有更优雅的解决方案。我欢迎任何答案/cmets。提前谢谢你。 我的问题演变成如下\n ***.com/questions/45943505/…

以上是关于Pi - 启用 dbus 进行开发的主要内容,如果未能解决你的问题,请参考以下文章

如何在Raspberry Pi 3模块上启用I2C(与Android Things一起使用作为操作系统)

树莓派启用root账户

sh 此bash脚本为在Raspberry Pi 3上运行的Google智能助理创建系统单元文件和启动文件。还启用并启动

通过 Dbus 联系 Pulse Audio

树莓派启用root用户

sh 启用和禁用Raspberry Pi上的HDMI端口:`rpi-hdmi on`打开,`rpi-hdmi off`关闭。 X正确地重新初始化了