LVGL 环境搭建-基于WSL

背景说明

小白刚开始接触LVGL,前些日子狠心花198元入手了一块堪称LVGL 入门利器~HMI-Board 开发板,虽然有RT-Thread 集成好的LVGL 环境,只需要几个步骤就能成功把lvgl 的示例运行起来,对于爱折腾的我来说,过于简单也并非好事,对其中的实现流程也是一无所知。于是便想着尝试把lvgl 官方的代码在vscode 运行起来。

步骤1:git 克隆 lv_port_vscode 仓库

lvgl 官方有说明模拟器可以在 linux/mac 平台上使用VS Code,目前暂不支持Windows 系统下使用 VS Code 模拟器。

官方提供GitHub - lvgl/lv_port_pc_vscode的 git 仓库`GitHub - lvgl/lv_port_pc_vscode`在git 仓库里面有README 文档,下面按照官方文档在 WSL2 中进行操作。

  • 1.运行vscode 进入wsl 环境,创建`lvgl_workspace`目录,后面的操作都在这个文件夹下执行。
  • 2.使用git clone 命令克隆git 仓库

git clone --recursive https://github.com/lvgl/lv_port_pc_vscode

但是在这里克隆时间特别长,而且很大概率会不成功,这里尝试在使用git 代理把仓库克隆下来,然后拷贝到 lv_port_pc_vscode 目录下。

这里使用git 代理的方式把lvgl 仓库克隆下来到本地,下一步需要把lvgl 的仓库切换到指定的版本,避免因版本不同编译出错。

在vs code 终端中查看git 克隆到本地的git 状态。

  • 根据git 仓库的 README 操作安装SDL / X11,这里主要安装 SDL 。

sudo apt-get update && sudo apt-get install -y build-essential libsdl2-dev wget https://kumisystems.dl.sourceforge.net/project/freetype/freetype2/2.13.2/freetype-2.13.2.tar.xz tar -xf freetype-2.13.2.tar.xz cd freetype-2.13.2 make make install git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg git checkout release/6.0 ./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib make sudo make install

安装完成后,在VS CODE 中使用 F5 快捷键进行编译工程,会提示下面的错误。

这个错误是因为git clone 仓库的时候子模块 lv_drivers 目录下的文件没有同步好,这时候我们命令行切换到 lv_drivers 目录,进行下面的操作。

终端中执行下面的命令

cd lv_port_pc_vscode/ git checkout 5a5b4a1

输入git status 命令查看,分支切换是否成功。

此时,再切回到`lv_port_pc_vscode`目录下,按下键盘的F5 快捷键编译工程,一般到此应该可以正常运行lvgl 才对,然而实际运行报了下面一个错误,瞬间不知道咋回事。

这里折腾了不少时间,由于这个错误完全没看懂,实在没有办法,只能尝试wsl2 环境下gui 显示(这里是sdl )看看功能是否正常。

找到`Run Linux GUI apps with WSL | Microsoft Learn`这个链接,抱着尝试的心态看看能不能运行起来。

在操作之前需要再次确认一下 WSL 环境下linux 环境是使用WSL2 的版本,可以使用

查看WSL 环境下linux 环境是哪个版本 wsl --list -v

确认是WSL 2 版本,然后进行安装相关GUI 软件,在安装gui 软件之前先更新一下wsl ,这里不确定是否有效,不过还是按照官方的推荐操作执行一遍。

按照上面的命令执行(需要退出wsl 环境,这里把vscode 关闭后再在powershell 中执行)。

接下来,正式开始安装gui app.

sudo apt update sudo apt install gedit -y sudo apt install gimp -y 此时gui 界面都能正常显示,但是再次在工程中按下F5 依旧是报错。 后面尝试重新安装gdb,居然可以正常运行了。 apt-get install gdb

所以前面报错的原因竟是没有安装gdb.

运行效果显示:

到此基于wsl 搭建的LVGL 环境搭建完成,下一步开始学习 LVGL 的使用和界面设计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/265061.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE 材质】冰冻效果

效果 步骤 1. 打开“Quixel Bridge” 下载冰的纹理 2. 新建一个材质,这里命名为“M_Frozen” 打开“M_Frozen”,添加如下节点,此时我们可以通过控制参数“偏移”来改变边界的偏移 此时预览效果如下 如果增加参数“偏移”的默认值效果如下 3.…

动态规划课堂2-----路径问题

目录 引言: 例题1:不同路径 例题2:不同路径II 例题3:礼物的最⼤价值 例题4:下降路径最⼩和 例题5:最小路径和 结语: 引言: 在学习完动态规划斐波那契数列模型后,…

QT GUI编程常用控件学习

1 GUI编程应该学什么 2 QT常用模块结构 QtCore: 包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用 QtGui: 包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类 QtWidgets: 包含了一些列创建桌面应用的UI元素…

input输入框过滤非金额内容保留一个小数点和2位小数

这篇是输入框过滤非金额内容保留一个小数点和2位小数,金额的其他格式化可以看这篇文章常用的金额数字的格式化方法 js方法直接使用 该方式可以直接使用过滤内容,也可以到onInput或onblur等地方过滤,自行使用 /*** 非金额字符格式化处理* p…

安全测试工具之nmap使用指南

文章目录 一、前言二、简介三、使用示例(一)常用命令(二)主机存活检测(三)端口探测(四)服务识别(五)操作系统识别 三、其它 一、前言 当我们在构建环境或排查…

【电子通识】为什么单片机芯片上会有多组VDD电源?

在单片机芯片规格书中,我们经常能看到多个组VDD的设计,如下红框所示管脚都是VDD管脚。 为什么需要这样设计?只设置一个VDD管脚,把其他的VDD管脚让出来多做几个IO或是其他复用功能不好吗?接下来我们从单片机内部的电路结…

Linux线程(二)----- 线程控制

目录 前言 一、线程资源区 1.1 线程私有资源 1.2 线程共享资源 1.3 原生线程库 二、线程控制接口 2.1 线程创建 2.1.1 创建一批线程 2.2 线程等待 2.3 终止线程 2.4 线程实战 2.5 其他接口 2.5.1 关闭线程 2.5.2 获取线程ID 2.5.3 线程分离 三、深入理解线程 …

eureka 简介和基本使用

Eureka 是Netflix开发的服务发现框架,是Spring Cloud微服务架构中的一部分。它主要用于微服务架构中的服务注册与发现。Eureka由两部分组成:Eureka Server 和 Eureka Client。获取更详细的信息可以访问官网,如下图: Eureka Server…

Qt的QThread、QRunnable和QThreadPool的使用

1.相关描述 随机生产1000个数字,然后进行冒泡排序与快速排序。随机生成类继承QThread类、冒泡排序使用moveToThread方法添加到一个线程中、快速排序类继承QRunnable类,添加到线程池中进行排序。 2.相关界面 3.相关代码 widget.cpp #include "widget…

文献速递:深度学习--深度学习方法用于帕金森病的脑电图诊断

文献速递:深度学习–深度学习方法用于帕金森病的脑电图诊断 01 文献速递介绍 人类大脑在出生时含有最多的神经细胞,也称为神经元。这些神经细胞无法像我们身体的其他细胞那样自我修复。随着年龄的增长,神经元逐渐死亡,因此变得…

2024-02-23(Spark)

1.RDD的数据是过程数据 RDD之间进行相互迭代计算(Transaction的转换),当执行开启后,代表老RDD的消失 RDD的数据是过程数据,只在处理的过程中存在,一旦处理完成,就不见了。 这个特性可以最大化…

【非递归版】归并排序算法(2)

目录 MergeSortNonR归并排序 非递归&归并排序VS快速排序 整体思想 图解分析​ 代码实现 时间复杂度 归并排序在硬盘上的应用(外排序) MergeSortNonR归并排序 前面的快速排序的非递归实现,我们借助栈实现。这里我们能否也借助栈去…

2.5G/5G/10G高速率网络变压器(网络隔离变压器)产品介绍(1)

Hqst华轩盛(石门盈盛)电子导读:高速率/2.5G 的带POE插件(DIP)款千兆双口网络变压器2G54801DP特点 一 ﹑2.5G高速率网络变压器(网络隔离变压器):2G54801DP外观与尺寸 2G54801DP这颗产品尺寸为:长…

设计模式浅析(九) ·模板方法模式

设计模式浅析(九) 模板方法模式 日常叨逼叨 java设计模式浅析,如果觉得对你有帮助,记得一键三连,谢谢各位观众老爷😁😁 模板方法模式 概念 模板方法模式(Template Method Pattern)在Java中是…

HP笔记本电脑如何恢复出厂设置?这里提供几种方法

要恢复出厂设置Windows 11或10的HP笔记本电脑,你可以使用操作系统的标准方法。如果你运行的是早期版本,你可以使用HP提供的单独程序清除计算机并重新安装操作系统。 恢复出厂设置运行Windows 11的HP笔记本电脑​ 所有Windows 11计算机都有一个名为“重置此电脑”的功能,可…

Llama2模型的优化版本:Llama-2-Onnx

Llama2模型的优化版本:Llama-2-Onnx。 Llama-2-Onnx是Llama2模型的优化版本。Llama2模型由一堆解码器层组成。每个解码器层(或变换器块)由一个自注意层和一个前馈多层感知器构成。与经典的变换器相比,Llama模型在前馈层中使用了不…

uni-app原生api的promise化以解决异步等待问题分析

相信各位在进行uni-app开发的时候会遇到各种关于异步回调问题,例如要传code给后端以换取session_key,在这之前需要先调用 uni.login,所以执行的顺序是必须同步等待的。在写这篇文章之前对于整体的流程概念需要做一个梳理,以便能更…

普中51单片机学习(8*8LED点阵)

8*8LED点阵 实验代码 #include "reg52.h" #include "intrins.h"typedef unsigned int u16; typedef unsigned char u8; u8 lednum0x80;sbit SHCPP3^6; sbit SERP3^4; sbit STCPP3^5;void HC595SENDBYTE(u8 dat) {u8 a;SHCP1;STCP1;for(a0;a<8;a){SERd…

分布式事务之2、3段提交协议

二阶段提交协议 二阶段提交(Two-phaseCommit)是在计算机网络以及数据库领域内&#xff0c;为了使分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法。 在分布式系统中&#xff0c;每个节点虽然可以知晓自己的操作是成功或者失败&#xff0c;却无法知道其…

项目登录方案选型

一.Cookie + Session 登录 大家都知道,HTTP 是一种无状态的协议。无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求返回数据,但不会记录任何信息。为了解决 HTTP 无状态的问题,出现了 Cookie。Co…