Qt:dbus移植笔记

废话不多说,直接进入正题。

 dbus移植过程当中遇到很多的问题,归根结底原因还是在于对dbus的不熟悉。

环境:

Ubuntu 12.04LTS

qt-everywhere-opensource-src-4.8.4.tar.gz

dbus-1.2.3.tar.gz

移植步骤:

1、下载http://dbus.freedesktop.org/releases/dbus/,我下载的版本dbus-1.2.3.tar.gz。

2、编译: 解压之后,配置

./configure --prefix=/opt/dbus-1.2.3  --without-x      (嵌入式环境不用X代码)

make

make install

3、编译进Qt库:

配置的选项为:

./configure  ****-dbus -dbus-linked -I/opt/dbus-1.2.3/include/dbus-1.0 -I/opt/dbus-1.2.3/lib/dbus-1.0/include -L/opt/dbus-1.2.3/lib -ldbus-1 -lpthread -lrt***

(其他选项就省了)

make

make install

4、配置

这里比较重要。如果没有配置DBUS_SESSION_BUS_ADDRESS环境变量将出现下面的错误:

Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

在网上找,说要在profie中添加如下配置:

export DISPLAY=:0

配置过后,reboot,虽然没有了上面的错误,但是又会出现下面的错误:

Autolaunch requested,but X11 support not compiled in.Cannot continue

总之原因都在于没有配置DBUS_SESSION_BUS_ADDRESS环境变量,配置好了也就好了。(当然每个人遇到的问题可能相同,但解决办法可能会不同)

配置DBUS_SESSION_BUS_ADDRESS的方法:

1、开机需要开启dbus_deamon,这是dbus规定的,可以在/etc/rs.d/rcS中添加如下代码:

/opt/dbus-1.2.3/bin/daemon --session --print-address > /tmp/dbus-tmp-file &

--print-address参数是为了在stdout中输出dbus服务器的地址,然后将其重定向到/tmp/dbus-tmp-file中。

然后在profile中添加如下配置:

export DBUS_SESSION_BUS_ADDRESS=`cat /tmp/dbus-tmp-file`

好了,基本完成了。

如果还不能用首先用命令

env | grep  DBUS_SESSION_BUS_ADDRESS

看下有没有配置好这个环境变量。之所以要这个,那就需要去看下dbus的原理了

 


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wswxfwps

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值