首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WSL2 on Windows 11 (Ubuntu20.04):无法运行Qt应用程序,“无法连接到显示::0",找到了xcb模块,但未加载

WSL2 on Windows 11 (Ubuntu20.04):无法运行Qt应用程序,“无法连接到显示::0",找到了xcb模块,但未加载
EN

Ask Ubuntu用户
提问于 2022-09-12 15:39:31
回答 1查看 2.8K关注 0票数 2

Qt应用程序工作在终端托管的WSL,而不是窗口WSL

我试图在Windows11上运行一个Qt应用程序,比如xeyes,在WSL2上运行Ubuntu20.04,当我启动它时(xeyes,或者Wireshark,或者我的公司生产的Qt软件),我有一个错误:Error: Can't open display: :0

根据软件的不同,错误可以详细说明如下:

代码语言:javascript
运行
复制
user@PC:~$ wireshark
qt.qpa.xcb: could not connect to display: :0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found

为了便于阅读,我将开始这样的代码行:

  • C:\Users\me> foo是Windows终端
  • bash-5.0$ fight是从终端调用的(在同一个窗口中)
  • user@PC:~$是从Windows 11开始的,从桌面开始的,在一个单独的窗口中。应该是完全一样的,但显然不是.

奇怪的是,如果我从CMD启动I,那么WSL2可以运行这些代码。但不是在我的主要WSL安装中,我是从Windows桌面上的快捷方式开始的。

关于这个问题有很多问题:这里这里这里。所有的解决方案都不适合我的系统。我的看法是,在启动时,WSL会改变网络配置.

如何复制

如果我打开终端(Windows命令invite)并从那里启动WSL,它可以工作:

代码语言:javascript
运行
复制
C:\Users\me> wsl ~ -e bash --norc --noprofile
bash-5.0$ xeyes               # --> xeyes work

但是,如果我直接从Windows打开WSL,它就不能工作。

代码语言:javascript
运行
复制
user@PC:~$ xeyes
Error: Can't open display: :0

奇怪的是,<#>once我打开了WSL 2,我不能再次从CMD托管的WSL启动应用程序。

代码语言:javascript
运行
复制
C:\Users\me> wsl ~ -e bash --norc --noprofile
bash-5.0$ xeyes
Error: Can't open display: :0

我的结论是,something在WSL2启动时更改了网络设置

可能导致

我尝试更改DISPLAY变量。

  • user@PC:~$ export DISPLAY=0.0.0.0 -->相同的错误
  • user@PC:~$ export DISPLAY=0.0.0.0:0 ->运行几分钟,然后相同的错误
  • user@PC:~$ export DISPLAY=10.0.0.3 (本地IP) ->相同的错误
  • user@PC:~$ export DISPLAY=10.0.0.3:0 ->运行几分钟,然后相同的错误
  • user@PC:~$ export DISPLAY=[route]放置默认路由->相同的错误

在所有情况下,问题都不能是DISPLAY,因为它在CMD和WSL2中具有相同的默认值。

来自Windows桌面的WSL:

user@PC:~$ echo $DISPLAY -> :0

来自航站楼的WSL:

代码语言:javascript
运行
复制
C:\Users\me> wsl ~ -e bash --norc --noprofile
bash-5.0$ echo $DISPLAY
bash-5.0$ :0

我想也许桌面上的WSL会改变网络设置。但是ifconfigip route show都返回完全相同的参数。我的.bashrc中也没有任何东西可以修改它们,至少我认为是这样。

EN

回答 1

Ask Ubuntu用户

发布于 2023-03-22 05:23:45

我在Windows 10上,WSL2在Ubuntu上。

尝试下面的export QT_QPA_PLATFORM="xcb" sudo apt install libxcb-xinerama0 libqt5x11extras5

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1428981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档