我试图在本地Ubuntu (20.04)主机上运行一个Qt5应用程序(利用QML和cpp )。应用程序失败的有:
#: ./src/qt_files/qt_gui
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
QGLXContext: Failed to create dummy context
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Aborted (core dumped)我是,能够在没有问题的情况下本地运行应用程序,但是无法让它在中运行。
我使用的docker run命令是:
docker run -it --rm --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME:/myhome -v /dev/:/dev/ --name qt-dev myqtdocker /bin/bash我还利用xhost local:root,并确认我可以从码头运行其他x11应用程序。
比较ldd输出似乎表明,应用程序链接到相同的库库和本地库。
应该指出,是的,这台机器包含一个专用的NVIDIA,但我是故意不使用它作为运行时在任何一个环境。(经nvidia-smi证实)。虽然我可能是错误的司机是如何装载,我欢迎任何建议。谢谢你的帮助。
发布于 2021-11-23 11:05:17
解决方法是将-e QT_QUICK_BACKEND=software添加到run命令中,或者将ENV QT_QUICK_BACKEND=software添加到停靠文件中。
我仍然在寻找一种使用硬件模式运行它的方法,因为在软件模式中地图polyline有一些问题。
https://stackoverflow.com/questions/69049171
复制相似问题