sdbus-c++中文版使用说明(一)——概括介绍与编译

1. 前言

  本章节是在前文D-Bus理论基础linux系统DBus工具的使用的基础上,深入学习和理解sdbus-c++库的使用方法,文章篇幅较长(阅读时可以打开左侧的目录结构,方便理清文章结构)。若仅为了学习在工程中应用sdbus-c++ API接口,可以直接跳转至C++绑定层 API 使用说明(待发布),因为该库提供的最高层API也足够使用。

参考链接:
本文内容对应的是sdbus-c+±2.0.0版本(官方文档可能会随升级发生变动):
using-sdbus-c++.md

2. 介绍

  sdbus-c++ 是一个基于sd-bus构建的 C++ D-Bus 库(即sd-bus的包装器),sd-bus 是systemd项目中实现的轻量级 D-Bus 客户端库。它在更高的抽象级别上提供 D-Bus 功能,尽管 sdbus-c++ 涵盖了大部分 sd-bus API,但它尚未完全涵盖所有 sd-bus API 细节。重点放在最广泛使用的功能上:D-Bus 连接、对象、代理、同步和异步方法调用、信号和属性。

3. 编译

3.1 源文件下载

  编译所需的依赖库包括sigc++、systemd。本文使用了sigc+±3.6.0版本以及sdbus-c+±2.0.0版本:
libsigcplusplus-3.6.0.tar.gz
sdbus-cpp-2.0.0.tar.gz

3.2 解决systemd依赖

注意:
  如果想交叉编译,亲测过程并不顺利,依赖的sigc++、expat、systemd、libcap全都要先进行交叉编译,期间涉及到手动修改CMakeList,尤其systemd更是使用meson、ninja编译工具,本文32位arm的交叉编译结果,最后也是通过buildroot构建系统后,从系统里提出依赖的动态库直接使用的。

通常linux系统自带了systemd。如果没有,我们可以采取以下两种方式:

  • systemd相当独立,我们可以单独编译systemd的动态库;
  • sdbus-c++提供了更便捷的方式,在cmake配置中启用SDBUSCPP_BUILD_LIBSYSTEMD,这是在非 systemd 环境中构建、分发和使用 sdbus-c++的最方便、最有效的方法。只需确保具有 libsystemd 构建过程所需的所有依赖项:ninja、git、gperf、libmount、libcap、librt,同时还可以通过设置SDBUSCPP_LIBSYSTEMD_VERSION标志来调整要采用的 systemd 版本(
  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值