在没有安装 qt 的情况下在 linux 上启动 qt5 应用程序时“无法加载平台插件“xcb””

新手上路,请多包涵

我为使用 Qt5 的 linux 编写了应用程序。

但是当我试图在没有安装 Qt SDK 的情况下在 linux 上启动它时,控制台中的输出是:

无法加载平台插件“xcb”。可用平台有:

我怎样才能解决这个问题?可能我需要复制一些插件文件吗?当我使用安装了 Qt5 的 ubuntu,但我重命名 Qt 目录时,会出现同样的问题。所以,它使用Qt目录中的一些文件……

更新:当我使用文件 libqxcb.so 在应用程序目录“平台”文件夹中创建时,应用程序仍然无法启动,但错误消息发生了变化:

无法加载平台插件“xcb”。可用平台有:

xcb

这怎么可能发生?平台插件如何可用但无法加载?

原文由 locomotion 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

使用 ldd (man ldd) 显示共享库依赖项。在 libqxcb.so 上运行它

.../platforms$ ldd libqxcb.so

表明 xcb 依赖于 libQt5DBus.so.5 以及 libQt5Core.so.5 和 libQt5Gui.so.5(以及许多其他系统库)。将 libQt5DBus.so.5 添加到您的共享库集合中,您应该准备好继续前进。

原文由 Abe Mishler 发布,翻译遵循 CC BY-SA 3.0 许可协议

如前所述,您需要确保在部署应用程序时安装平台插件。根据您想要部署的方式,有两种方法可以告诉您的应用程序平台插件(例如,platforms/plugins/libqxcb.so)在运行时的位置,这可能对您有用。

首先是通过QT_QPA_PLATFORM_PLUGIN_PATH变量导出目录的路径。

 QT_QPA_PLATFORM_PLUGIN_PATH=path/to/plugins ./my_qt_app

或者

export QT_QPA_PLATFORM_PLUGIN_PATH=path/to/plugins
./my_qt_app

我更喜欢的另一个选项是在与可执行文件相同的目录中创建一个 qt.conf 文件。其中的内容是:

 [Paths]
Plugins=/path/to/plugins

可以在 此处使用 qt.conf 找到有关此的更多信息

原文由 bossbarber 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题