当前位置:首页 > 技术 > 正文内容

在OpenSUSE Linux上搭建LVGL模拟器环境(VSCode+SDL2)

访客 技术 2026年7月15日 1

在OpenSUSE Linux上搭建LVGL模拟器环境(VSCode+SDL2)

SDL2运行环境与依赖库安装

要在OpenSUSE系统上运行LVGL模拟器,首先需要安装SDL2库及其开发文件。

# 查找可用的SDL2包
sudo zypper search libsdl2

# 安装SDL2运行时和开发库
sudo zypper install libSDL2-2_0-0 libSDL2-devel

创建VSCode+SDL模拟器项目

LVGL官方提供了一个基于SDL2的模拟器项目,允许开发者在PC上调试嵌入式界面,而无需实际的硬件设备。这个模拟器使用SDL2实现了底层渲染功能,方便开发者在PC上进行开发调试,完成后再移植到嵌入式设备。SDL是一个底层驱动库,用于处理图形、鼠标、键盘等输入输出。项目详情请参考:https://github.com/lvgl/lv_sim_vscode_sdl

获取项目源码

# 克隆项目仓库(包含子模块)
git clone https://github.com/lvgl/lv_sim_vscode_sdl.git --depth=1 --recursive

# 更新项目(如需要)
cd lv_sim_vscode_sdl
git pull --recurse-submodules

加速克隆过程

由于网络原因,直接从GitHub克隆可能较慢。可以使用以下方法加速:

参考:https://gitclone.com/

如果无法正常克隆,可以将github.com替换为github.com.cnpmjs.org,操作如下:

https://zhuanlan.zhihu.com/p/361136073

另一种方法(未经验证):

# 进入项目目录
cd lv_sim_vscode_sdl/

# 配置Git代理(以下任选一种)
git config url."https://gitclone.com/github.com/".insteadOf https://github.com/
# 或
git config url."https://github.com.cnpmjs.org".insteadOf https://github.com/

在VSCode中运行项目

使用VSCode打开项目(请确保已安装C/C++扩展),按下F5键启动调试程序。

启动模拟器

默认情况下,程序将运行lv_demo_widgets()示例。

运行示例

开发指南

LVGL官方网站:https://lvgl.io/

控件示例

LVGL提供了丰富的控件示例,可在以下地址查看:

https://docs.lvgl.io/master/examples.html#get-started

示例应用源码

示例应用的主程序源码位于lv_examples/src/目录下,例如音乐播放器示例位于lv_examples/src/lv_demo_music/lv_demo_music.c

使用Squareline Studio进行界面开发

Squareline Studio是LVGL官方推荐的界面设计器,可用于创建用户界面并添加事件处理。

官方网站:https://squareline.io/

设计完成后,通过Export菜单导出项目。建议先导出LVGL模板工程(Export Project),再导出UI逻辑代码(Export File)。

导出界面

注意:如果不导出UI逻辑代码,将无法看到事件处理的程序接口。

实际上,导出工程只是生成一个LVGL的Eclipse-CDT模板工程,而导出代码才是真正的UI和逻辑代码。可以将导出的代码复制到同版本的LVGL工程中的ui目录,然后在main.c中添加#include "ui/ui.h",并在main()函数的while(1)循环前添加ui_init();即可。

推荐学习资源

LVGL教程集合:https://deepinout.com/lvgl-tutorials

Windows系统上的使用方法

在Windows系统上,可以通过MSYS2环境安装SDL2:

# 在MSYS2中搜索SDL2包
pacman -Ss sdl2

# 安装SDL2
pacman -S mingw-w64-x86_64-SDL2

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

linux screen 用法详情 (nohup 的替代方案)

一、screen 是什么?能干嘛?screen 是一个终端复用器,可以:在一个 SSH 会话中开多个“虚拟终端”SSH 断线后,程序仍然在后台运行随时重新连接到原来的会话特别适合:nohup 的替代方案跑脚本 / 爬虫 / 训练模型运维、远程开发二、安装 screen# CentOS / Rocky / Almayum install -y screen# Debian / Ubuntuapt i...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。