在未安装 qt 的 Linux 上启动 qt5 应用程序时出现“无法加载平台插件”xcb“”

在未安装 qt 的 Linux 上启动 qt5 应用程序时出现“无法加载平台插件”xcb“”

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

但是当我尝试在未安装 Qt SDK 的 Linux 上启动它时,控制台中的输出是:

Failed to load platform plugin "xcb". Available platforms are:

我该如何解决这个问题?也许我需要复制一些插件文件?当我使用安装了 Qt5 的 Ubuntu 时,但我重命名了 Qt 目录,也会出现同样的问题。因此,它使用了 qt 目录中的一些文件...

libqxcb.so我在 Qt SDK 目录中找到了文件,但将其放入/usr/lib并没有帮助。

答案1

当我尝试运行“Stellarium”时收到此错误消息。

使用 strace 我发现丢失的文件是libxcb-xinerama.so.0。我必须重新安装libxcb-xinerama0才能使其工作:

sudo apt-get install --reinstall libxcb-xinerama0

答案2

对于任何遇到此问题的未来读者 - 在你开始(危险地)摆弄共享库的符号链接之前,我强烈建议你运行

export QT_DEBUG_PLUGINS=1

然后在终端中再次运行失败的可执行文件。阅读 QT 抛出的实际错误消息,因为上述解决方案都无法解决我遇到的此错误的原因。

我开机后的输出QT_DEBUG_PLUGINS是:

QFactoryLoader::QFactoryLoader() checking directory path "/opt/PostgreSQL/9.6/pgAdmin 4/bin/platforms" ...
loaded library "/opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so"
QLibraryPrivate::loadPlugin failed on "/opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so" : "Cannot load library /opt/PostgreSQL/9.6/pgAdmin 4/plugins/platforms/libqxcb.so: (/opt/PostgreSQL/9.6/lib/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))"
This application failed to start because it could not find or load the Qt platform plugin "xcb".

Available platform plugins are: xcb.

Reinstalling the application may fix this problem.
Aborted (core dumped)

于是我谷歌了一下这个version `ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16))错误,发现解决方案,解决了这个问题。

答案3

尝试libqt5x11extras5使用命令安装包:
sudo apt-get install libqt5x11extras5

名称可能不同。您可以通过搜索来找到:
sudo apt-cache search qt5 | grep 'X11 extras'

并且您获得包的名称如下:

libqt5x11extras5-Qt 5 X11 附加功能

答案4

运行这个解决了我的问题:

sudo apt-get --reinstall install libqt5dbus5 \
libqt5widgets5 libqt5network5 libqt5gui5 libqt5core5a \
libdouble-conversion1 libxcb-xinerama0

相关内容