如何解决QT6:“qt.qpa.plugin:即使找到了,也无法在“”中加载 Qt 平台插件“xcb””
我知道有很多关于这个话题的答案,但没有一个对我有帮助。我正在通过 Oracle VM Virtual Box 使用 Ubunty 20.04,我遇到了与所有其他人完全相同的错误。 使用官方 Qt 手册构建 Qt6 源代码后,我尝试运行不同的项目以测试一切是否正常。控制台类型的项目可以正常构建和运行。没有错误。不幸的是,当我尝试运行 Widget 类型的应用程序时,它因众所周知的错误而失败。
t.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs,linuxfb,minimal,minimalegl,offscreen,vnc,xcb.
我的同事让 Qt6 在他的 Ubuntu 上正常工作,看到我在 .../qtbase/plugins/platforms 中没有 libqxcb.so
并与我分享.不幸的是,它没有多大帮助。只有错误信息发生了一些变化:它说找到了插件,但无法使用。
我尝试了来自互联网的不同解决方案,但没有一个有帮助。最受欢迎之一
sudo apt install libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0
没有影响。
此外,环境变量 QT_DEBUG_PLUGINS=1
还有更详细的输出:
QFactoryLoader::QFactoryLoader() checking directory path "/home/curiouspan/qt6-build/qtbase/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqeglfs.so"
Found metadata in lib /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqeglfs.so,metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3","MetaData": {
"Keys": [
"eglfs"
]
},"archreq": 1,"className": "QEglFSIntegrationPlugin","debug": true,"version": 393728
}
Got keys from plugin meta data QList("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqlinuxfb.so"
Found metadata in lib /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqlinuxfb.so,"MetaData": {
"Keys": [
"linuxfb"
]
},"className": "QLinuxFbIntegrationPlugin","version": 393728
}
Got keys from plugin meta data QList("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqminimal.so"
Found metadata in lib /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqminimal.so,"MetaData": {
"Keys": [
"minimal"
]
},"className": "QMinimalIntegrationPlugin","version": 393728
}
Got keys from plugin meta data QList("minimal")
QFactoryLoader::QFactoryLoader() looking at "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqminimalegl.so"
Found metadata in lib /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqminimalegl.so,"MetaData": {
"Keys": [
"minimalegl"
]
},"className": "QMinimalEglIntegrationPlugin","version": 393728
}
Got keys from plugin meta data QList("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqoffscreen.so"
Found metadata in lib /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqoffscreen.so,"MetaData": {
"Keys": [
"offscreen"
]
},"className": "QOffscreenIntegrationPlugin","version": 393728
}
Got keys from plugin meta data QList("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqvnc.so"
Found metadata in lib /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqvnc.so,"MetaData": {
"Keys": [
"vnc"
]
},"className": "QVncIntegrationPlugin","version": 393728
}
Got keys from plugin meta data QList("vnc")
QFactoryLoader::QFactoryLoader() looking at "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqxcb.so"
Found metadata in lib /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqxcb.so,"MetaData": {
"Keys": [
"xcb"
]
},"archreq": 0,"className": "QXcbIntegrationPlugin","debug": false,"version": 393728
}
Got keys from plugin meta data QList("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/home/curiouspan/QtTestProjects/build-WidgetTestApp-Own_Desktop-Debug/platforms" ...
Cannot load library /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqxcb.so: (libQt6XcbQpa.so.6: cannot open shared object file: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/home/curiouspan/qt6-build/qtbase/plugins/platforms/libqxcb.so" : "Cannot load library /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqxcb.so: (libQt6XcbQpa.so.6: cannot open shared object file: No such file or directory)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs,xcb.
显示 libQt6XcbQpa.so.6
文件丢失。
运行 ldd /home/curiouspan/qt6-build/qtbase/plugins/platforms/libqxcb.so
以显示依赖项后,我得到以下输出:
linux-vdso.so.1 (0x00007fffc8770000)
libQt6XcbQpa.so.6 => not found
libQt6Gui.so.6 => /home/curiouspan/qt6-build/qtbase/plugins/platforms/../../lib/libQt6Gui.so.6 (0x00007f0873306000)
libQt6Core.so.6 => /home/curiouspan/qt6-build/qtbase/plugins/platforms/../../lib/libQt6Core.so.6 (0x00007f087295d000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f087277c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f087258a000)
libEGL.so.1 => /lib/x86_64-linux-gnu/libEGL.so.1 (0x00007f0872573000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f0872436000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0872430000)
libQt6DBus.so.6 => /home/curiouspan/qt6-build/qtbase/plugins/platforms/../../lib/libQt6DBus.so.6 (0x00007f0872262000)
libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f087222e000)
libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007f0872202000)
所以这个文件真的不见了。 潜在的问题是什么,我该如何解决?提前致谢!
解决方法
感谢所有试图帮助解决我的问题的人。答案来自官方 Qt 论坛。解决方案链接:https://forum.qt.io/topic/127696/qt-qpa-plugin-could-not-load-the-qt-platform-plugin-xcb-in-even-though-it-was-found/22
基本上,问题在于缺少某些依赖项。由于 Qt6 的特殊性,我不得不从 Qt5 构建手册安装依赖项。很难说缺少哪个依赖导致了问题,但是在安装所有依赖并重新配置和重建源代码后,项目构建正常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。