glib

ubuntu下安装glib库

孤人 提交于 2019-12-06 08:17:03
最近unix课程学习上有一份作业要求用到glib库,而这个是一个第三方库,并不能通过sudo apt-get install×××来安装,所以这就有一些问题需要注意: 首先,安装为防止libffi找不到,我们先安装它:打开终端 ,输入sudo apt-get install libffi-dev,,顺畅的安装好它。 然后可以来安装glib了,先在终端输入wget http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.45/glib-2.45.2.tar.xz,回车将其下载好 解压缩tar -vxf glib-2.45.2.tar.xz 之后cd进入当前目录下的glib-2.45.2 然后是./configure(这里可以加一些东西) 结果发现报错,没有zlib库,ok,跑去安装zlib库,在终端输入sudo apt-get install zlib1g-dev 完成,接着装。好了之后,make,然后make install,这里如果提示权限不够就在前边加上sudo。 然后就安装完成。 但是之后使用的时候我们会发现编译过程中报错,找不到glib.h 这里有两个解决办法:一.在安装过程中在./configure后加上安装路径:./configure --prefix=/usr 指定安装目录 然后默认搜索库路径一般是/usr/lib 二

dbus-glib 和 GDBus 的区别

天大地大妈咪最大 提交于 2019-12-06 08:15:54
http://people.freedesktop.org/~david/gio-gdbus-codegen-20110412/ch29.html Conceptual differences(概念上的区别) The central concepts of D-Bus are modelled in a very similar way in dbus-glib and GDBus. Both have a objects representing connections, proxies and method invocations. But there are some important differences: D-Bus最重要的概念在dbus-glib和GDBus中都是相似的.都用对象表示连接,代理 和 方法执行,但也有一些重要的不同点: dbus-glib uses the libdbus reference implementation , GDBus doesn't. Instead, it relies on GIO streams as transport layer, and has its own implementation for the the D-Bus connection setup and authentication. Apart from

dbus-glib 安装环境搭建

可紊 提交于 2019-12-06 07:48:33
dbus-glib 安装环境搭建 安装 dbus apt-get install dbus 安装 d-feet ,用于查看 session bus 和 system bus apt-get install d-feet 安装 glib2.0 apt-get install libgtk2.0-dev 安装 dbus-glib apt-get install libdbus-glib-1-dev 下面三个错误参考http://hi.baidu.com/zengzhaonong/blog/item/670b98d6e63ae42c07088bae.html 常见的错误 错误 1: $ gcc test.c test.c:8:23: 错误: dbus/dbus.h : No such file or director y ...... $ 错误提示, dbus 库的头文件位置不正确 ( 如果已经安装了 dbus 的话 ) $ sudo updatedb $ sudo locate dbus.h ( 查看 dbus.h 的所在位置 ) /usr/local/include/dbus-1.0/dbus/dbus.h /usr/include/dbus-1.0/dbus/dbus.h 看来 dbus.h 的存放位置的确不正确,这可能是由于 dbus-1.0 的安装位置有问题,没关系,调整一下

D-Bus介绍

烂漫一生 提交于 2019-12-06 07:33:59
1 D-Bus 简介 D-Bus 是 Desktop Bus 的缩写,是针对桌面环境优化的 IPC(interprocess communication) 机制,用于进程间的通信或进程与内核的通信。 IPC 种类很多,适用的情景也不一样: CORBA 是用于面向对象编程中复杂的 IPC 的一个强大的解决方案。 DCOP 是一个较轻量级的 IPC 框架,功能较少,但是可以很好地集成到 K 桌面环境中。 SOAP 和 XML-RPC 设计用于 Web 服务,因而使用 HTTP 作为其传输协议。 D-BUS 设计用于桌面应用程序和 OS 通信。 D-Bus 中 D 是代表桌面“ Desktop ”的意思,即用于桌面操作系统的通信通道。现在逐渐被引入到嵌入式系统中,不过名字还是保留原先的叫法而已。 典型的桌面都会有多个应用程序在运行,而且,它们经常需要彼此进行通信。 DCOP 是一个用于 KDE 的解决方案,但是它依赖于 Qt ,所以不能用于其他桌面环境之中。类似的, Bonobo 是一个用于 GNOME 的解决方案,但是非常笨重,因为它是基于 CORBA 的。它还依赖于 GObject ,所以也不能用于 GNOME 之外。 D-BUS 的目标是将 DCOP 和 Bonobo 替换为简单的 IPC ,并集成这两种桌面环境。由于尽可能地减少了 D-BUS 所需的依赖,所以其他可能会使用 D

Dbus-glib使用心得

醉酒当歌 提交于 2019-12-06 07:20:51
Dbus-glib使用心得 一、背景介绍 从安全的角度考虑,广泛的使用DBUS进行进程间通讯。 1.优点: DBUS总线分为系统总线与会话总线两类,两者之前不能互相通信,所以任何应用程序不能欺骗系统事件,安全性很好。 2.缺点 l 直接使用Dbus标准接口调用很繁琐,各服务之间各写一套,不易维护也容易出错。 l 接受方法调用端、消息接收端等程序需要非阻塞式(阻塞式的无法多线程DBUS通讯)判断是否接收到DBUS信息,形如: W hile(1) { dbus_connection_read_write (); msg = dbus_connection_borrow_message(conn); if (NULL == msg) { usleep(xxx); continue; } … } 如上所示,多个服务同时运行的情况下,会占用大量CPU时间片,之前就有测试报告应用程序压力运行单一操作的情况下,应用程序会由快跑慢。 因此需要一个稳定可靠的DBUS调用封装,上层统一该封装接口进行DBUS通讯。 二、 D bus-glib介绍 Dbus-glib是GNU标准库,在Dbus接口上封装,方便上层服务与应用更好的使用。其形如一个DBUS代理服务器,由它进行所有DBUS消息的遍历与转发,服务端与消息发送端只需要向DBUS deamon申请注册唯一的DBUS name 、绑定GOBJECT后

dbus-glib 详解

狂风中的少年 提交于 2019-12-06 07:18:48
Dbus-glib使用方法说明 一、背景介绍 Phoenix平台从安全的角度考虑,广泛的使用DBUS进行进程间通讯。 1.优点: DBUS总线分为系统总线与会话总线两类,两者之前不能互相通信,所以任何应用程序不能欺骗系统事件,安全性很好。 2.缺点 l 直接使用Dbus标准接口调用很繁琐,且之前Phoenix平台没有统一的DBUS接口封装,各服务之间各写一套,不易维护也容易出错。 l 接受方法调用端、消息接收端等程序需要非阻塞式(阻塞式的无法多线程DBUS通讯)判断是否接收到DBUS信息,形如: While(1) { dbus_connection_read_write(); msg =dbus_connection_borrow_message(conn); if (NULL == msg) { usleep(xxx); continue; } … } 如上所示,多个服务同时运行的情况下,会占用大量CPU时间片,之前就有测试报告应用程序压力运行单一操作的情况下,应用程序会由快跑慢。 因此需要一个稳定可靠的DBUS调用封装,上层统一该封装接口进行DBUS通讯。 二、Dbus-glib介绍 Dbus-glib是GNU标准库,在Dbus接口上封装,方便上层服务与应用更好的使用。其形如一个DBUS代理服务器,由它进行所有DBUS消息的遍历与转发

【8】初识dbus和glib

雨燕双飞 提交于 2019-12-06 07:14:19
从接触dbus到现在已经过去了两个星期了,至于为什么要学这个,当然是一些需求所导致,所以说作为一个程序员具备一定的自我学习能力还是必要的,还有就是要硬着头皮看英文文档,能大概的明白写的什么意思就行,实在看不懂可以翻译一下就行。 什么是dbus dbus就是一种进程间的通信机制,dbus主要的概念就是总线,进程注册到总线之后,就可以利用总线来进行通信了。 dbus的一些基本概念 dbus是三层架构的进程通信系统: 接口层:由libdbus提供。 总线层:由D-Bus总线守护进程提供的。总线可以分为系统总线和会话总线。 包装层:包装层一系列基于特定应用程序框架的Wrapper库。 对象:对象是封装后的匹配器与回调函数,它以对等(peer-to-peer)协议使每个消息都有一个源地址和一个目的地址。这些地址又称为对象路径,或者称之为总线名称。 消息:D-Bus的消息分为信号(signals)、方法调用(method calls)、方法返回(method returns)和错误(errors)。 服务:服务(Services)是进程注册的抽象。 关于这些理论上的东西,直接搜索一下就可以了解了,其实刚开始看的时候,感觉也是迷糊的,啥也不懂,没办法,这时候就得硬着头皮继续查看相关资料了,计算机里面的这些东西,都很抽象,想要搞懂,就得花时间硬着头皮去看,去理解,没办法。

How to remove the warning in gcc 4.6: missing initializer [-Wmissing-field-initializers]?

江枫思渺然 提交于 2019-12-06 05:43:44
问题 The code: GValue value = { 0 }; Give the following warning: missing initializer [-Wmissing-field-initializers] I know that's a gcc's BUG; but is there some trick to remove it? really not nice see such unreal warnings. But I don't want power off the warning because it will hidden real warnings from me too. A sorry, but I can't update my gcc to 4.7(where looks like it was fixed) version, yet. 回答1: Use G_VALUE_INIT to initialize GValue -s. Their (private) structure is in /usr/include/glib-2.0

How to reply a D-Bus message

冷暖自知 提交于 2019-12-06 05:31:53
I got the D-Bus server.c and client.c code, and made some modification. I want the result that when type for example "hi" from client.c server will print "receive message hi", and reply "reply_content!!!!!!" to client.c But it seems that now client.c cannot get the reply message. Anyone have the idea? Thanks in advance. "server.c" /* server.c */ #include <dbus/dbus.h> #include <stdbool.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> static DBusHandlerResult filter_func(DBusConnection *connection, DBusMessage *message, void *usr_data) { DBusMessage *reply; dbus_bool_t handled =