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

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

本文关键字:自动启动 bus-daemon X11 DISPLAY 如果没有      更新时间:2023-10-16

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

"如果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, "%sn",
            qPrintable(QDBusConnection::sessionBus().lastError().message()));
    return 1;
}

我不需要X11支持,所以我只是在寻找最简单的方法来处理这个错误

对于感兴趣的人来说,我只是在程序中设置了env变量:

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