【问题标题】:Choosing cross-distro DBus implementation选择跨发行版 DBus 实现
【发布时间】:2019-04-20 13:10:35
【问题描述】:

我正在尝试编写一个 systemd 守护程序,它应该在 SDP 中注册新服务、侦听 RFCOMM 连接并与其他蓝牙设备交换一些信息。守护程序应尽可能独立于发行版。因为我想使用 BlueZ5,所以我需要使用 DBus(这对我来说是新的)。

所以我的问题来了,选择 GDBus 会让我的守护进程只在安装了 GNOME 的系统上运行吗?或者类似地,QtDBus 是否只适用于 KDE?如果是,我应该怎么做才能在多个发行版上运行它?

【问题讨论】:

  • IMO glib、gio 库是任何桌面发行版中的最小依赖项。所以开发基于GDbus的蓝牙应用对于任何桌面来说应该都不是问题。你可以在这里找到一些例子:gist.github.com/parthitce 和细节在这里:linumiz.com

标签: linux dbus bluez


【解决方案1】:

来自freedesktop wiki

低级 libdbus 参考库没有必需的依赖项; 参考总线守护程序唯一需要的依赖项是 XML 解析器 (外籍人士)。特定于特定框架(Qt, GLib、Java、C#、Python 等)添加更多的依赖项,但可以使更多 假设,因此使用起来更简单。绑定进化 与底层的libdbus分开,所以有些比较成熟 ABI-比其他人稳定;检查您计划绑定的文档 使用。

因此您可以随心所欲地独立于平台。

Parthiban 在 cmets 中的建议可能是您最好的选择,因为即使是 libdbus 开发人员也推荐 GDBus 作为更好的选择。

您可以在here 找到一个很好的选项概述。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-12-11
  • 2014-10-27
  • 2013-08-30
  • 2010-12-06
  • 2018-05-05
  • 2012-04-06
  • 2013-10-15
  • 1970-01-01
相关资源
最近更新 更多