WSL2 Ubuntu安装Qt(包括QtCreator)

2023-05-16

最近因为需要在Linux下使用qtcreator做一些界面开发的预研和学习,主要是因为要交叉编译Qt。但又不想再使用虚拟机了, 真的太消耗内存了。

于是就想着直接使用Windows10 下面的WSL2。 怎么安装WSL2这里就不展开了,有兴趣的朋友,问问度娘就什么都知道了。

在网上查了不少资料,但感觉都不全面,有一些细节和基本点没有说到,这样实际安装起来就会遇到不少坑, 所以笔者就想着自己整理一篇。 如果以后需要在其他电脑上再次安装的话,也好有个参考。

笔者的环境:

  • 宿主系统: Windows10
  • 虚拟环境: WSL2
  • 系统环境:Ubuntu 20.04

首先是参考了这篇文章:https://blog.csdn.net/u013841997/article/details/104747482
将的就是在WSL2的Ubuntu环境下如何安装Qt以及QtCreator,核心内容就是如下几条命令:

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install qtcreator
sudo apt-get install qt5-default
sudo apt-get install libfontconfig1
sudo apt-get install mesa-common-dev
sudo apt-get upgrade

这一套操作完运行时间稍微有点久,因为除了安装这些应用本身,会需要一些基本的依赖库,所以体积和时间都稍微有点大。
完成之后,就是运行。 当然这个时候直接运行是不行的, 以上文章就说到,还需要:

export DISPLAY=:0

笔者同样跟着做,接着就运行qtcreator, 然而并没有什么暖用,直接提示

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.
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.

Aborted

所以接着研究,发现,还需要xserver/xclient。 所以在Windows10上下载安装xming。
接着就是启动xming了, 说到这里,就有一个小坑, 安装完xming之后,可以直接点击xming启动,也可以点击xlaunch以向导的形式一步一步配置来启动。

这里有两种方案:

  • 其一:需要用过xlauch来启动,基本上默认的下一步,下一步就可以,但是重点是,需要在如下界面中勾选“no access control”。

在这里插入图片描述

一定要勾选,不然就会出现如下错误(这里多了一句: No protocol specified):

No protocol specified
qt.qpa.xcb: could not connect to display 172.22.0.1:0.0
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.

Aborted
  • 其二:修改Xming的快捷方式的属性,这样可以很方便的直接点击Xming启动,其修改如下(很简单,就是加一个 “-ac”):
    在这里插入图片描述

接下来还要确认的一个点就是Windows10的防火墙,一定要确保红线框中的都是勾选上的。
在这里插入图片描述
接下来还有一个坑,就是设置:export DISPLAY=:0 这一句,直接这样设置是没法工作的。
这个DISPLAY的设置规则如下:

export DISPLAY=[HOST]:[DISPLAY NUMBER]

也就是说需要确定两个点:

  • 其一: 在Windows10 桌面的任务栏中,鼠标放在xming的图标上(注: 不用点击),查看具体的DISPLAY NUMBER:
    在这里插入图片描述
  • 其二: 在Windows10 powershell中使用ipconfig查看WSL网卡的ip地址,这个就是DISPLAY设置规则中HOST部分:
    在这里插入图片描述
    为了方便,可以将export DISPLAY这个动作放到 .bashrc 文件中。
echo "export DISPLAY=172.22.0.1:0.0" >> ~/.bashrc

这样每次进入WSL2的Ubuntu终端的时候,就已经自动设置了DISPLAY这个环境变量了。

注: 上面写入 设置DISPLAY环境变量的语句到.bashrc文件中时,一定要使用 ‘>>’ 而不是 ‘>’ , “>>” 这个表示在文件的末尾添加一行,而使用“>” 这个的话只是将那个字符串 重定向输出到.bashrc文件,操作之后 .bashrc文件中就是有字符串部分的内容了。 切记,切记

最后需要说明一点的是,笔者在操作时,一开始没整通, 所以就在网上查资料,然后按照资料操作,所以就安装的xfce4。 也就是说,笔者这里不确定是否需要xfce4。 所以,如果读者按照以上操作之后,还是无法启动qtcreator,那么,就安装一下xfce4 试试:

sudo apt install xfce4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL2 Ubuntu安装Qt(包括QtCreator) 的相关文章

随机推荐

  • GO如何查看变量大小和数据类型

    如何查看一个变量的大小和数据类型 如何查看一个变量的大小和数据类型 paceage main import 34 fmt 34 34 unsafe 34 var n2 int64 61 10 fmt Printf 34 n2的类型 T n2
  • GO语言百分号参数

    常用 参数 v 值的默认格式 T 值得类型的GO语法表示 t 单词true或者false b 表示为二进制 c 该值对应的unicode码值 d 表示十进制 o 表示八进制 f 有小数部分但无指数部分 q 双引号输出
  • java第八节-重复执行

    import java util Scanner public class hello public static void main String args for System out println 34 hello 34 impor
  • java基础第九节-跳转控制语句-数组

    continue用在循环中 xff0c 基于条件控制 xff0c 跳过某次循环体内容的执行 xff0c 继续下一次的执行 break用在循环中 xff0c 基于条件控制 xff0c 终止循环体内容的执行 xff0c 结束当前的整个循环 数组
  • JAVA基础-基本类型转换

    int 和string的相互转换 1 int转换String public static String valuesOf int i 返回int参数的字符串表示形式 xff0c 该方法是String类的方法 1 String转换int pu
  • ubuntu系统-查看系统版本信息

    cat etc issue
  • Ubuntu查看cpu使用情况

    top命令查看cpu等信息 id是 xff1a 空闲 CPU 占用的 CPU 百分比
  • Ubuntu系统查看内存信息

    free命令查看内存信息 h 选项会在数字后面加上适于可读的单位 free h total xff1a 总物理内存大小 used xff1a 内存使用量 free xff1a 剩余可用内存
  • 嘉立创打样的阻抗匹配

    一 适用条件 最好使用4层板以上 xff0c 2层做匹配没啥意义 xff0c 套用大佬的话 主要是中间层和表层的距离近 xff0c 表层和中间层的玻璃纤维厚度是0 2mm xff0c 双层板最少是0 6mm xff0c 这里的差距很大 xf
  • echo 命令总结

    echo命令的功能是在显示器上显示一段文字 xff0c 一般起到一个提示的作用 此外 xff0c 也可以直接在文件中写入要写的内容 也可以用于脚本编程时显示某一个变量的值 xff0c 或者直接输出指定的字符串 echo命令的语法是 xff1
  • Android音频子系统(十三)------audio音频测试工具

    你好 xff01 这里是风筝的博客 xff0c 欢迎和我一起交流 测试音频延时的话 xff0c 一般使用WALT来测试是最为准确的 xff0c 他是借助了外部硬件来捕获音频信号 xff0c 某宝上有卖 xff1a 就是有丢丢小贵 xff0c
  • 一位北邮信通硕士的求职历程,看看 或许有帮助

    序 xff1a 写在前面的话 这篇文章的适用对象为 xff1a 非技术类方向的同学 xff0c 如果你是技术大牛 xff0c 你可以跳过这篇文章了 如果你觉得自己不喜欢技术或者技术不适合你 xff0c 此文或许会给你些有用的东西 简单介绍一
  • [转]STM32 串口传输处理方式 FreeRTOS+队列+DMA+IDLE (二)

    紧接着上一篇文章 xff0c 如何合理处理多个串口接收大量数据 此种方法 xff0c 很厉害 xff0c 很NB xff0c 首先 xff0c 利用DMA 可节省大量CUP资源 其次 xff0c 利用IDLE空闲中断来接收位置个数的数据 最
  • [转]FreeRTOS消息队列、信号量、事件标志组、任务通知

    功能及区别列表 消息队列 xff08 需要传递消息时使用 xff09 在任务与任务间 中断和任务间传递信息 xff0c 可以数据传输 事件标志组 xff08 多个事件同步 xff0c 不需要传递消息时使用 xff09 实现任务与任务间 中断
  • ubuntu 终端打不开解决办法

    由于ubuntu自带的是python3 5 在新安装了python3 6以后 xff0c 开机突然发现无论是点击图标还是使用快捷键终端都无法打开 xff0c 解决办法如下 xff1a xff11 xff0e 按Ctrl 43 Alt 43
  • Jack server already installed in "/***/.jack-server" 异常

    xff08 1 xff09 在新增新用户后 xff0c 进行android编译 xff0c 出现如下异常 xff1a Ensure Jack server is installed and started FAILED bin bash c
  • gstreamer移植qnx(二):交叉编译glib

    一 简介 这里以glib的2 63 0版本 xff0c QNX系统的版本是 xff1a 6 6 这里是为了编译gstreamer的依赖库 xff0c 也就是说最终目标 xff0c 是将gstreamer移植到QNX6 6系统上 我选择的是g
  • repo安装与简单使用

    一 概述 当一个大的项目需要拆分成很多的子项目 xff0c 或者说一个软件系统拆分成多个子系统 每一个子项目或者子系统都对应一个git repository 这种需求在实际项目当中是很常见的 xff0c 有的可能就直接写一个shell脚本来
  • 通过qemu-img命令将raw image转换成VMware虚拟硬盘vmdk

    为了在VMware中跑QNX系统 xff0c 我需要想办法将编译BSP生成的img文件固化到VMware的虚拟硬盘中去 xff0c 之前一直找不到方法 xff0c 到渐渐的只能用很笨的方法几次中专 将生成的img文件通过win32DiskI
  • WSL2 Ubuntu安装Qt(包括QtCreator)

    最近因为需要在Linux下使用qtcreator做一些界面开发的预研和学习 xff0c 主要是因为要交叉编译Qt 但又不想再使用虚拟机了 xff0c 真的太消耗内存了 于是就想着直接使用Windows10 下面的WSL2 怎么安装WSL2这