7

我有一个绑定到 D-Bus 的 QT/C++ 终端应用程序,但是当我尝试在会话总线上绑定时,出现以下错误:

“无法在没有 $DISPLAY for X11 的情况下自动启动 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 回答