dbus和glib简介

什么是dbus

dbus就是一种进程间的通信机制,dbus主要的概念就是总线,进程注册到总线之后,就可以利用总线来进行通信了。

dbus的一些基本概念

dbus是三层架构的进程通信系统:
接口层:由libdbus提供。
总线层:由D-Bus总线守护进程提供的。总线可以分为系统总线和会话总线。
包装层:包装层一系列基于特定应用程序框架的Wrapper库。
对象:对象是封装后的匹配器与回调函数,它以对等(peer-to-peer)协议使每个消息都有一个源地址和一个目的地址。这些地址又称为对象路径,或者称之为总线名称。
消息:D-Bus的消息分为信号(signals)、方法调用(method calls)、方法返回(method returns)和错误(errors)。
服务:服务(Services)是进程注册的抽象。

什么是glib

简单的说它就是linux平台下面的一个C语言函数库。
在使用GNOME桌面环境的Linux系统中,通常用GLib库提供的函数来管理总线。

glib需要支持线程的操作系统字符集间转换函数iconv的支持,事实上大多现代操作系统都有以上两项功。

GLib由五个部分组成的:

  • 基础类型
  • 对核心应用的支持
  • 实用功能
  • 数据类型
  • 对象系统

基本数据类型

  • 整数类型:gint8、guint8、gint16、guint16、gint32、guint32、gint64、guint64,不是所有的平台都提供64位整型
  • 整数类型gshort、glong、gintshort、long、int相同
  • 布尔类型gboolean,可以取两个值:TRUEFALSE,是常数宏
  • 字符型gcharchar相同
  • 浮点型gfloat、gdoublefloat、double完全等价
  • 指针gpointer对应于标准C的void*
  • gconstpointer对应于标准C的const void*

 

交叉编译glib

下载地址1,地址2

glib依赖dbuslib, zlib, libffi, libmount, libpcre...

创建cross_file.txt,

[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'

[properties]
c_args = []
c_link_args = []

[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
strip = 'x86_64-w64-mingw32-strip'
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
windres = 'x86_64-w64-mingw32-windres'

执行命令编译

meson --cross-file cross_file.txt builddir

参照官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值