• 728阅读
  • 0回复

[提问]如何让 Linux 平台的简单 QT5 应用不自动运行 dbus-launch ? [复制链接]

上一主题 下一主题
离线offline
 

只看楼主 倒序阅读 楼主  发表于: 2022-11-27

  在 Linux 平台下,哪怕是一个再简单的 QT5 GUI 应用程序,也依赖 libdbus-1. 因为 X11 下的 QT5 GUI 应用的依赖链条是: libqxcb / libQt5XcbQpa --> libQt5DBus --> libdbus-1, 当然 Wayland 环境也大同小异。但在 QT4 时代并非如此,因为 QT4 下的简单 GUI 程序并不强行依赖 libQtDBus.

   Linux 下的许多 GUI 应用都依赖 libdbus-1, 但它们不会触发 D-Bus自动运行机制,而 QT5 GUI 程序却会。结果就是:当启动一个简单的 QT5 GUI 应用时,假如 dbus-launch 和 dbus-daemon 没有启动,那么 QT5 GUI 应用会触发它,让它启动起来。

  有无什么办法让 dbus-launch 不要自动运行,而是有需要时再运行?注意并非要求禁用 dbus-launch 和 dbus-daemon, 而是在无需使用到 D-BUs 时不自行触发启动它。

  哪怕需要修改 libQt5DBus 部分的源代码也行,我愿意自己编译 QT 库。当然如果无需修改 QT 库,通过某些选项配置能够达到目的就更好了。





快速回复
限100 字节
 
上一个 下一个