我正在尝试在嵌入式系统(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
Run Code Online (Sandbox Code Playgroud)
我意识到我需要启动第dbus-daemon一个,所以我从命令行运行dbus-launch.这打印出一个值,DBUS_SESSION_BUS_ADDRESS但我怎么能以编程方式导出它?
谢谢您的帮助
Nei*_*eil 18
我终于找到了答案,运行以下命令导出dbus-launch的输出:
export $(dbus-launch)
Run Code Online (Sandbox Code Playgroud)
小智 8
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}
Run Code Online (Sandbox Code Playgroud)
请确保用户设置了 DISPLAY 变量。
另一种选择是:
export $(dbus-launch)
Run Code Online (Sandbox Code Playgroud)
小智 7
在终端中输入以下命令:
eval `dbus-launch --auto-syntax`
Run Code Online (Sandbox Code Playgroud)