如果没有$ DISPLAY for X11,则无法自动启动dbus-daemon

时间:2015-07-31 23:01:02

标签: c++ qt dbus qtdbus

我有一个绑定到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支持,所以我只想找到处理这个错误最简单的方法

1 个答案:

答案 0 :(得分:2)

对于任何感兴趣的人,我只需在程序中设置env变量:

setenv("DISPLAY", ":0", true);