我是 DBus 的新手,但我试图在嵌入式设备上的两个 Qt 应用程序中使用它。我有一个非常简单的界面,由一个插槽组成:
QString SendMessage(const QString &cmd);
然后,服务器应用程序使用以下代码启动连接:
DbusService* dBus = new DbusService;
new interfaceIfAdaptor(dBus);
QDBusConnection connection = QDBusConnection::sessionBus();
bool ret = connection.registerService("com.domain.project.interface");
qDebug() << "returns" << ret;
ret = connection.registerObject("/", dBus);
qDebug() << "returns" << ret;
这在桌面上运行良好。在嵌入式系统中,connection.registerService 函数返回 false。因此,发送到服务器的任何消息都会失败。我不确定为什么。运行 'ps' 告诉我 [dbus-daemon —system] 和 [dbus-daemon —sesson] 都在运行。
最后,我注意到当我调试应用程序时 Qt Creator 会抱怨。我看到以下警告消息:
无法为 10 个库加载共享库符号,例如 /opt/arm/lib/libQtDBus.so.4。
使用“info sharedlibrary”命令查看完整列表。
你需要“set solib-search-path”还是“set sysroot”?
无法为 /usr/lib/libdbus-1.so.3 加载共享库符号。
你需要“set solib-search-path”还是“set sysroot”?
如果需要其他信息来调试此问题,请告诉我。或者,如果有有用的 dbus 命令我可以运行来帮助解决这个问题。谢谢!