您的位置:首页 > 其它

dbus pc机上开发环境的建立

2015-10-29 15:13 246 查看
这几天开始弄dbus通信协议,理论知识不多说,网上一大堆,基于dbus开发,首先得搭建dbus开发环境,本人用红帽和centos搭建的。

首先下载源码:http://dbus.freedesktop.org/releases/dbus/ 

里面有各种各样的历史版本,我下载的是最新版本的。(dbus-1.10.2.tar.gz)

tar解压之后,运行./configure出现错误:



后来发现是某个依赖包没有安装,利用yum search expat  ,发现:



也就是expat-devel.i686这个依赖包。 

运行:yum install expat-devel.i686 安装好这个依赖包之后,再次运行./configure,发现成功了,然后make,make install,这个时候,dbus库就安装到了pc机了。

注意,以上是从dbus下载源码,编译然后安装到pc机上的情况。

下面介绍从yum下载dbus库,yum search dbus,可以发现如下的安装包


yum install *dbus* 这样就安装好了库。

接下来是centos的情况:

centos和红帽差不多,下载源码:http://dbus.freedesktop.org/releases/dbus/ 

搜索 yum search expat ,安装yum install expat-devel.x86_64,./configure,make, make install,这样就把库安装好了。

用yum的库也和红帽差不多,yum search dbus



挑选出和系统匹配的处理安装,我的是 x86_64的,所用安装所用x86_64的yum包。

环境搭建好了之后,编写好dbus程序,但是会发现很多错误,下面以centos为例解决常见错误。

错误1 dbus/dbus.h : No
such file or directory

这是dbus库的头文件位置不对。进入/usr/include/dbus-1.0/dbus,发现dbus.h在此目录下:



进入/usr/include目录,ln
-sf /usr/include/dbus-1.0/dbus ./dbus 或者cp -rf /usr/include/dbus-1.0/dbus
/usr/include。

错误2
:dbus/dbus-arch-deps.h : No
such file or directory

解决方法
:cp /usr/lib/glib-2.0/include/glibconfig.h /usr/include

错误 3:

 (.text+0xbb6): undefined reference to `dbus_message_iter_get_basic'

..........

(.text+0xbd4): undefined
reference to `dbus_message_unref' 

这是需要连接动态库

解决方法:



gccsend.c .c
-l dbus-glib-1-osend

特别注意:红帽的系统是用 gcc send.c
-l dbus-glib-1 -o send


下面是解决#include <dbus/dbus-glib.h>错误的方法:

ln –sf ./glib-2.0/glib glib 

ln –sf ./glib-2.0/gobject ./gobject

把 glib.h 文件放到 /usr/include 下

cp ./glib-2.0/glib.h ./

把 glib-object.h 放到 /usr/include 下

cp ./glib-2.0/glib-object.h ./

注意,路径可能不同,以实际的pc机为准
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: