組み込みシステム(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`
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)
ターミナルに入力します。
export $DBUS_SESSION_BUS_ADDRESS