7

D-Bus にバインドする QT/C++ ターミナル アプリケーションがありますが、セッション バスにバインドしようとすると、次のエラーが発生します。

「X11 の $DISPLAY なしで dbus-daemon を自動起動できません」

これは単純なターミナル アプリケーションのコード スニペットです。

if (!QDBusConnection::sessionBus().isConnected()) {
    fprintf(stderr, "Cannot connect to the D-Bus session bus.\n"
                    "To start it, run:\n"
                    "\teval `dbus-launch --auto-syntax`\n");
    fprintf(stderr, "%s\n",
            qPrintable(QDBusConnection::sessionBus().lastError().message()));
    return 1;
}

X11 のサポートは必要ないので、このエラーに対処する最も簡単な方法を探しています。

4

1 に答える 1

5

興味のある方は、プログラム内から環境変数を設定するだけです:

setenv("DISPLAY", ":0", true);
于 2015-08-04T16:48:35.487 に答える