ubuntu DBUS 收集

libdbus-1.so.3.19.11
是dbus-1.12.16.tar.gz 包编译出来的

参考文档:

https://www.freedesktop.org/wiki/Software/dbus/
https://www.freedesktop.org/wiki/IntroductionToDBus/
https://dbus.freedesktop.org/doc/dbus-tutorial.html
https://docs.gtk.org/gio/
https://docs.gtk.org/gio/migrating-gdbus.html

使用DBUS的软件 列表
https://www.freedesktop.org/wiki/Software/DbusProjects/

https://www.freedesktop.org/wiki/Software/DbusTools/

https://dbus.freedesktop.org/releases/dbus/
realse 版本
https://dbus.freedesktop.org/releases/dbus/
https://wiki.gnome.org/action/show/Apps/DFeet?action=show&redirect=DFeet

https://dbus.freedesktop.org/releases/dbus-glib/

Dbus 的编译(移植)以及双向通信使用例程
https://blog.csdn.net/qq_36731830/article/details/121865510

在图形界面中,


需要执行 在有界面的状态下执行 dbus-monitor
如果是在putty下面执行 : dbus-monitor
会出现问题:

Failed to open connection to session bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

安装 D-BUS

安装D-Bus可在其官方网站下载源码编译,地址为http://dbus.freedesktop.org。
或者在终端上输入下列指令:
yum install dbus dbus-devel dbus-doc
安装后,头文件位于"/usr/include/dbus-<版本号>/dbus"目录中,编译使用D-Bus的程序时需加入编译指令"pkg-config --cflags --libs dbus-1"。

执行指令

pkg-config --cflags --libs dbus-1

-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -ldbus-1

D-Bus的用例

在使用GNOME桌面环境的Linux系统中,通常用GLib库提供的函数来管理总线。在测试下列用例前,首先需要安装GTK+开发包(见22.3节)并配置编译环境。该用例一共包含两个程序文件,每个程序文件需单独编译成为可执行文件。
1.消息发送程序
"dbus-ding-send.c"程序每秒通过会话总线发送一个参数为字符串Ding!的信号

main()函数创建一个GLib事件循环,获得会话总线的一个连接,并将D-Bus事件处理集成到GLib事件循环之中。然后它创建了一个名为 send_ding()函数作为间隔为一秒的计时器,并启动事件循环。send_ding()函数构造一个来自于对象路径"/com/burtonini /dbus/ding"和接口"com.burtonini.dbus.Signal"的新的Ding信号。然后,字符串Ding!作为参数添加到信号中 并通过总线发送。在标准输出中会打印一条消息以让用户知道发送了一个信号。

2.消息接收程序
dbus-ding-listen.c程序通过会话总线接收dbus-ding-send.c程序发送到消息

该程序侦听dbus-ping-send.c程序正在发出的信号。main()函数和前面一样启动,创建一个到总线的连接。然后它声明愿意在使用 com.burtonini.dbus.Signal接口的信号被发送时得到通知,将signal_filter()函数设置为通知函数,然后进入事件循 环。当满足匹配的消息被发送时,signal_func()函数会被调用。

如果需要确定在接收消息时如何处理,可通过检测消息头实现。若收到的消息为总线断开信号,则主事件循环将被终止,因为监听的总线已经不存在了。若收 到其他的消息,首先将收到的消息与期待的消息进行比较,两者相同则输出其中参数,并退出程序。两者不相同则告知总线并没有处理该消息,这样消息会继续保留 在总线中供别的程序处理。

好了,《dbus实例讲解》到此结束。其实我的所有文章只是希望能让这复杂的世界简单一点。

查看 dbus 版本

pkg-config --cflags --libs dbus-1
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -ldbus-1
pkg-config --modversion dbus-1
1.12.16


https://dbus.freedesktop.org/releases/dbus/dbus-1.12.16.tar.gz

编译 dbus-1.12.16

./configure --prefix=/home/jack/work/glib_study/dbus_study/install

./configure -prefix=/home/ubuntu/dbus-1.13.18/install

make && make install

https://developer.gnome.org/gio/stable/gdbus-convenience.html
http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html

the GNOME and KDE desktops

make install 之后:


安装 d-feet

sudo apt-get install d-feet
【dbus_00】dbus在ubuntu18.04上的安装
https://blog.csdn.net/Kevin__Mei/article/details/89484314

3

1.首先,D-bus可以分成三部分来看,
(1)dbus-daemon,一个dbus的后台守护程序,用于多个应用之间消息的转发;
(2)libdbus.so,dbus的功能接口,当你的程序需要使用dbus时,其实就是调用libdbus.so里面的接口;
(3)高层封装,如dbus-glib和QT D-bus,这些其实都对D-bus的再封装,让你使用起来更方便。
  从D-bus官网下载到源码,其实只包含上面所说的1和2两部分,libdbus.so里面的接口也就是官网说的low-level API。
官网:http://www.freedesktop.org/wiki/Software/dbus/
经典例子:http://www.matthew.ath.cx/articles/dbus
不错的帖子:http://blog.csdn.net/flowingflying/article/details/4527634

4

gcc 未定义对 dbus_* 的引用

$ gcc `pkg-config --libs --cflags dbus-1` hh.c -o hh
/tmp/ccMabXOg.o: In function `main':
hh.c:(.text+0x18): undefined reference to `dbus_error_init'
hh.c:(.text+0x29): undefined reference to `dbus_bus_get'
hh.c:(.text+0x39): undefined reference to `dbus_error_is_set'
hh.c:(.text+0x5f): undefined reference to `dbus_error_free'
hh.c:(.text+0x80): undefined reference to `dbus_bus_name_has_owner'
hh.c:(.text+0x8f): undefined reference to `dbus_error_is_set'
hh.c:(.text+0x9f): undefined reference to `dbus_error_free'
hh.c:(.text+0xfb): undefined reference to `dbus_bus_request_name'
hh.c:(.text+0x10a): undefined reference to `dbus_error_is_set'
hh.c:(.text+0x11a): undefined reference to `dbus_error_free'
collect2: error: ld returned 1 exit status

您的链接顺序是从后到前的。代替:

gcc pkg-config --libs --cflags dbus-1 hh.c -o hh
做:

gcc hh.c -o hh pkg-config --libs --cflags dbus-1
或者:

gcc hh.c pkg-config --libs --cflags dbus-1 -o hh
在链接序列中,需要符号定义的文件必须位于提供定义的文件之前。所以库在目标文件之后。

ubuntu DBUS 收集相关推荐

  1. ubuntu dbus 学习

    ubuntu dbus 学习 ubuntu glib dbus https://dbus.freedesktop.org/doc/dbus-specification.html 命令行输入: sudo ...

  2. ubuntu快捷键收集

    Ctrl+Alt+T 终端 -Ctrl+Shift+C 终端复制 -Ctrl+Shift+V 终端粘贴 -Ctrl+L 清屏 -Ctrl+; 从剪切板中获得输入提示(不小心点到被诡异的提示吓到了) - ...

  3. ubuntu 命令收集

    1. ctrl + Alt + F1:   进入纯粹的命令行. 2. ctr + Alt + T :    从图形界面打开终端.

  4. ubuntu命令收集

    软件操作: - sudo apt-get install xxx 安装软件 - sudo apt-get --purge remove XXX 卸载软件 - sudo apt-get -f insta ...

  5. ubuntu网站收集

    http://linux.vbird.org/linux_server/0370samba.php#theory 鸟哥的linux私房菜

  6. Ubuntu安装配置

    一.安装Ubuntu,这个不多说了,因为是硬盘安装没有什么能"自主"的地方,水平有限. 二.换源及系统更新:sudo gedit /etc/apt/sources.list 加入: ...

  7. logo qt添加_linux下如何给qt程序添加图标?

    Linux下Qt程序打包发布并设置图标 之前整理过一篇文章是关于Windows下Qt打包发布与设置环境变量的,那篇文章里面Qt发布的程序是没有设置应用程序图标的,之后会再整理一篇文章的,顺便测试下使用 ...

  8. 菜鸟学Linux 第033篇笔记 bootloader,inittab

    菜鸟学Linux 第033篇笔记 bootloader,inittab Linux 系统自启动流程 PC OS (Linux) POST-->BIOS(Boot Sequence)-->M ...

  9. python 系统进程_在Python中监视所有系统进程

    我试图用Python在我的操作系统(Ubuntu)中收集一些进程的统计信息(生命周期.开始时间/结束时间等) 其中一个任务:我编写了一个函数,它获取系统中进程的名称和ID,但它很难看.在def get ...

最新文章

  1. 院士论坛|李德仁:测绘遥感能为智能驾驶做什么? ——论测绘遥感与智能驾驶
  2. Cucumber入门之_World
  3. cad连接不同线段的端点_CAD绘图中两条线段快速无缝平齐对接
  4. ashx 跨域_ASP.NET通用HTTP处理程序(ashx的),支持JSONP
  5. @override报错_C++ 多态性:C++11:override 与 final(学习笔记:第8章 09)
  6. yum源查看mysql_获取MySQL各版本yum源 并安装
  7. uCOS-II核心算法分析(μCOS-Ⅱ)
  8. 动态规划uva1347
  9. 磁盘未被格式化,是否格式化数据灾难应急方案
  10. python ca模块_python学习之模块-模块(五)
  11. python爬取豆瓣电影排行榜_爬取豆瓣电影排名的代码以及思路
  12. java udp多线程服务器_UDP服务端多线程-----
  13. 一小时做出Java实战项目——飞翔的小鸟
  14. 实战破解思科模拟器packet tracer-去除登陆窗口
  15. 【将Cityscape和Foggy_Cityscape转换为PASACAL VOC格式的目标检测数据集】
  16. 如何用python编程编一个可以盗qq的_利用 Python 编写一个类似 QQ 截图的小工具应该怎么入手?...
  17. WIN10 注册表添加启动项
  18. 二维码扫描枪中文开发指导
  19. 视频帧凸包检测 结果存入数据库
  20. 微信小程序开发常见问题总结

热门文章

  1. Hdf5开发笔记(一):hdf5介绍,在windows上编译msvc2015x64版本
  2. 【项目管理】对管理的认识与思考
  3. SqlServer 执行过的Sql语句查询
  4. 二叉树与树的相互转化
  5. 大学生开学必备物品清单,男生超喜欢的数码好物
  6. Macbook m1环境配置终极版
  7. [Manjaro]以DD模式制作U盘安装系统
  8. Java基础编程题目——判断输入是否为十六进制数,若不是则抛出异常
  9. 基于PHP的毕业设计管理系统的设计与实现(源码+配套论文)
  10. centos 查看本机ip