2022/07/21更新
现在WSL2已经可以直接运行 Linux GUI 了!!!不再需要安装Xserver(XLaunch)之类的!!!
参考微软的官方教程:在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用
不过值得注意的是:
如果之前在.bashrc
中设置了用于在Xserver的显示命令,需要取消掉!即:
否则按照微软官方教程走下来,会发现运行gedit
等程序会没有反应!!!
问题背景
系统:微软子系统WSL中的Ubuntu20.04
安装了Ros系统,为了在WSL上运行图形化程序,安装了Xserver,在测试ROS时发生了报错
主要是参考这篇文章
问题描述
在参考前面那篇文章运行rosrun turtlesim turtlesim_node
命令时,出现错误:
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:...
解决方案
这个问题出现的原因是ROS的程序无法连接到图形化界面,问题在于这块代码:
export DISPLAY=:0.0
export LIBGL_ALWAYS_INDIRECT=
export LIBGL_ALWASY_SOFTWARE=1
其中export DISPLAY=:0.0
这一句有问题(也许作者运行时没问题,但我在自己电脑上运行时会报错),这里需要加上自己的WSL的IP地址,查看WSL的IP的方法是打开命令行(cmd
),输入ipconfig
会显示
也就是说,需要写成export DISPLAY=xxx.xx.xx.xx(IP):0.0
此外,:0.0
这里跟XLaunch设置的显示器编号(Display Number)需要保持一致,默认为-1,等同于0.
如果这里设置为了其他数字,比如1,则上面的设置需要改为export DISPLAY=xxx.xx.xx.xx(IP):1.0
另外,下图中的第三个需要勾选
参考
[1] WSL (Ubuntu 18.04 LTS) 安装ROS,可运行Rviz和Gazebo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)