我正在尝试在嵌入式系统(Yocto Linux)上运行D-Bus,并从我的应用程序代码连接到它。
当我打电话给dbus_bus_get(DBUS_BUS_SESSION, &err);
时,我收到以下错误
Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUS_SESSION_BUS_ADDRESS instead
我意识到我需要首先启动dbus-daemon
,所以我从命令行运行dbus-launch
。这打印出DBUS_SESSION_BUS_ADDRESS
的值,但我怎么能以编程方式导出它?
谢谢您的帮助
我终于找到了答案,运行以下命令导出dbus-launch的输出:
export $(dbus-launch)
输入终端:
eval`dbus-launch --auto-syntax`
输入终端:
export $DBUS_SESSION_BUS_ADDRESS
pid_gnome=$(pgrep gnome-session)
DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/${pid_gnome}/environ|cut -d= -f2-)
export DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}
请确保用户设置了DISPLAY变量。
另一种选择是:export $(dbus-launch)