我已经编译了一个简单的 QT Quick 应用程序(使用Ruby 的 Qml,但我认为这并不重要)在 Ubuntu(18.04)上通过 Windows 10 v1903 上的 WSL 启动时出现以下错误西明。
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-xxxx'
failed to get the current screen resources
WARNING: Application calling GLX 1.3 function "glXCreatePbuffer" when GLX 1.3 is not supported! This is an application bug!
QGLXContext: Failed to create dummy context
有什么想法可以解决这个问题吗?
答案1
对于仍在使用 Windows 10 v1903 的用户:
- 从 xming 更改为服务端
- 如果在 HighDPI 屏幕上更改兼容性设置以让应用程序处理 DPI 缩放。
- 启动时
vcxsrv
不支持 OpenGL 间接 (-nowgl
) 并确保LIBGL_ALWAYS_INDIRECT
未设置 (export LIBGL_ALWAYS_INDIRECT=
)
答案2
我已经通过 Windows 10 v1903 上的 WSL 在 Ubuntu(18.04)上编译了一个简单的 QT Quick 应用程序(使用 Ruby-Qml,但我不认为这很重要),并在使用 Xming 启动时出现以下错误。
关于如何解决这个问题有什么想法吗?
WSL 的原始版本并非设计用于运行具有图形用户界面的应用程序。可以通过使用 Xming 等远程访问实例来解决此问题,但这些解决方案并不总是有效,正如您所发现的那样。
最简单的解决方案是迁移到 WSL 2 实例,Windows 10 版本 1909 是第一个支持 WSL 2 的版本,它运行实际的 Linux 内核。
最简单的解决方案是升级到 Windows 10 版本 1909,因为它被视为 Windows 10 版本 1903 的累积更新,它应该与 Windows 10 版本 1903 一样稳定。
是的;虽然 Windows 10 版本 1909 是一个功能更新,但它运行的版本与 Windows 10 版本 1903 相同(除了增加了 1)。