问题描述
我正在尝试从 https://github.com/vt4a2h/uml-tool 处运行代码,但我发现自己被此错误消息困住了:
qt.qpa.xcb: Could not connect to display
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,linuxfb,minimal,minimalegl,offscreen,vnc,xcb.
我使用 Windows 10 和 WSL 2 (Ubuntu 20.04.2 LTS)
我尝试过的:
- sudo apt-get install -y xserver-xorg xinit
- sudo apt-get install -y mesa-utils libegl1-mesa libegl1-mesa-dev libgbm-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev立>
- /etc/X11/xorg.conf ---> -bash: /etc/X11/xorg.conf: 没有那个文件或目录
- sudo Xorg -configure
X.Org X Server 1.20.9
X Protocol Version 11,Revision 0
Build Operating System: Linux 4.15.0-130-generic x86_64 Ubuntu
Current Operating System: Linux NB-CJ-U4-5336 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64
Kernel command line: initrd=\initrd.img panic=-1 pty.legacy_count=0 nr_cpus=12
Build Date: 17 January 2021 09:13:31AM
xorg-server 2:1.20.9-2ubuntu1.2~20.04.1 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.38.4
Before reporting problems,check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed,(**) from config file,(==) default setting,(++) from command line,(!!) notice,(II) @R_196_4045@ional,(WW) warning,(EE) error,(NI) not implemented,(??) unkNown.
(==) Log file: "/var/log/Xorg.0.log",Time: Tue Mar 16 17:32:21 2021
List of video drivers:
amdgpu
ati
intel
nouveau
qxl
radeon
vmware
modesetting
fbdev
vesa
No devices to configure. Configuration Failed.
(EE) Server terminated with error (2). Closing log file.
- sudo apt-get install --reinstall libxcb-xinerama0
- 导出 QT_DEBUG_PLUGINS=1
QT_DEBUG_PLUGINS=1
QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/
XAUTHORITY=~/.Xauthority
我的新错误信息是:
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so"
Found Metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so,Metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3","MetaData": {
"Keys": [
"eglfs"
]
},"archreq": 0,"className": "QEglFSIntegrationPlugin","debug": false,"version": 330752
}
Got keys from plugin Meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqlinuxfb.so"
Found Metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqlinuxfb.so,"MetaData": {
"Keys": [
"linuxfb"
]
},"className": "QLinuxFbIntegrationPlugin","version": 330752
}
Got keys from plugin Meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimal.so"
Found Metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimal.so,"MetaData": {
"Keys": [
"minimal"
]
},"className": "QMinimalIntegrationPlugin","version": 330752
}
Got keys from plugin Meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimalegl.so"
Found Metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimalegl.so,"MetaData": {
"Keys": [
"minimalegl"
]
},"className": "QMinimalEglIntegrationPlugin","version": 330752
}
Got keys from plugin Meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqoffscreen.so"
Found Metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqoffscreen.so,"MetaData": {
"Keys": [
"offscreen"
]
},"className": "QOffscreenIntegrationPlugin","version": 330752
}
Got keys from plugin Meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqvnc.so"
Found Metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqvnc.so,"MetaData": {
"Keys": [
"vnc"
]
},"className": "QVncIntegrationPlugin","version": 330752
}
Got keys from plugin Meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so"
Found Metadata in lib /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so,"MetaData": {
"Keys": [
"xcb"
]
},"className": "QXcbIntegrationPlugin","version": 330752
}
Got keys from plugin Meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins" ...
QFactoryLoader::QFactoryLoader() checking directory path "/mnt/c/MyPrograms/uml-tool/cmake-build-debug" ...
QFactoryLoader::QFactoryLoader() looking at "/mnt/c/MyPrograms/uml-tool/cmake-build-debug/cmake_install.cmake"
QElfParser: '/mnt/c/MyPrograms/uml-tool/cmake-build-debug/cmake_install.cmake' is not an ELF object
"'/mnt/c/MyPrograms/uml-tool/cmake-build-debug/cmake_install.cmake' is not an ELF object"
not a plugin
QFactoryLoader::QFactoryLoader() looking at "/mnt/c/MyPrograms/uml-tool/cmake-build-debug/CMakeCache.txt"
QElfParser: '/mnt/c/MyPrograms/uml-tool/cmake-build-debug/CMakeCache.txt' is not an ELF object
"'/mnt/c/MyPrograms/uml-tool/cmake-build-debug/CMakeCache.txt' is not an ELF object"
not a plugin
QFactoryLoader::QFactoryLoader() looking at "/mnt/c/MyPrograms/uml-tool/cmake-build-debug/Makefile"
QElfParser: '/mnt/c/MyPrograms/uml-tool/cmake-build-debug/Makefile' is not an ELF object
"'/mnt/c/MyPrograms/uml-tool/cmake-build-debug/Makefile' is not an ELF object"
not a plugin
QFactoryLoader::QFactoryLoader() looking at "/mnt/c/MyPrograms/uml-tool/cmake-build-debug/uml-tool"
"Failed to extract plugin Meta data from '/mnt/c/MyPrograms/uml-tool/cmake-build-debug/uml-tool'"
not a plugin
QFactoryLoader::QFactoryLoader() looking at "/mnt/c/MyPrograms/uml-tool/cmake-build-debug/UmlTool.cbp"
QElfParser: '/mnt/c/MyPrograms/uml-tool/cmake-build-debug/UmlTool.cbp' is not an ELF object
"'/mnt/c/MyPrograms/uml-tool/cmake-build-debug/UmlTool.cbp' is not an ELF object"
not a plugin
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms/libqeglfs.so"
Got keys from plugin Meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms/libqlinuxfb.so"
Got keys from plugin Meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms/libqminimal.so"
Got keys from plugin Meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms/libqminimalegl.so"
Got keys from plugin Meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms/libqoffscreen.so"
Got keys from plugin Meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms/libqvnc.so"
Got keys from plugin Meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/platforms/libqxcb.so"
Got keys from plugin Meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqeglfs.so"
Got keys from plugin Meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqlinuxfb.so"
Got keys from plugin Meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimal.so"
Got keys from plugin Meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqminimalegl.so"
Got keys from plugin Meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqoffscreen.so"
Got keys from plugin Meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqvnc.so"
Got keys from plugin Meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so"
Got keys from plugin Meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/mnt/c/MyPrograms/uml-tool/cmake-build-debug/platforms" ...
loaded library "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so"
qt.qpa.xcb: Could not connect to display
qt.qpa.xcb: Could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/" 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 (from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/),linuxfb (from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/),minimal (from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/),minimalegl (from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/),offscreen (from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/),vnc (from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/),xcb (from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/),eglfs,xcb.
Process finished with exit code 134
上面的所有命令都是从 ubuntu 控制台运行的
我该怎么办?我该如何解决这个问题?
解决方法
您需要一个 X11 服务器。 “WSL X11”的第一个 Google 结果是 https://virtualizationreview.com/articles/2017/02/08/graphical-programs-on-windows-subsystem-on-linux.aspx,它说:
要在图形程序中使用 WSL,需要在 Windows 10 系统上安装 X 服务器,并且需要在 Bash 中设置 DISPLAY 变量。幸运的是,有许多 X 服务器运行在 Windows 上。一些比较流行的免费软件是 Xming、Cygwin X 和 vcXsrv。
上面的文章还包含有关如何启动 X11 服务器并测试它是否正常工作的更多说明。