dbus pc机上开发环境的建立

来源:互联网 发布:java web网站mvc模板 编辑:程序博客网 时间:2024/06/05 05:50

这几天开始弄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机为准


0 0