没有 X11 的 $DISPLAY 无法自动启动 dbus-daemon

Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

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

"Unable to autolaunch a dbus-daemon without a $DISPLAY for X11"

这只是一个简单的终端应用程序,代码片段:

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 支持,所以我只是在寻找处理此错误的最简单方法

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

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