[LVGL]:MACOS下使用LVGL模拟器

本文详细介绍了如何在MacOS系统中安装必要的SDL2环境,并指导用户如何克隆和配置lvgl的PCVSCode模拟器,包括修改Makefile以链接SDL2库,最终实现编译和运行示例程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何在MACOS下使用lvgl模拟器

1.安装必要环境

brew install sdl2

查看sdl2安装位置:

(base) ➜  ~ brew list sdl2
/opt/homebrew/Cellar/sdl2/2.30.1/bin/sdl2-config
/opt/homebrew/Cellar/sdl2/2.30.1/include/SDL2/ (78 files)
/opt/homebrew/Cellar/sdl2/2.30.1/lib/libSDL2-2.0.0.dylib
/opt/homebrew/Cellar/sdl2/2.30.1/lib/cmake/ (2 files)
/opt/homebrew/Cellar/sdl2/2.30.1/lib/pkgconfig/sdl2.pc
/opt/homebrew/Cellar/sdl2/2.30.1/lib/ (4 other files)
/opt/homebrew/Cellar/sdl2/2.30.1/share/aclocal/sdl2.m4
(base) ➜  ~ 

2.模拟器配置

2.1 克隆仓库

仓库地址为:https://github.com/lvgl/lv_port_pc_vscode

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

2.2 修改makefile

打开根目录下的Makefile:

将lv_driver修改为sdl2

#LV_DRIVER          := X11
LV_DRIVER          := SDL2

修改INC和LDIBS,链接SDL2

INC 				:= -I./ui/simulator/inc/ -I./ -I./lvgl/ -I/opt/homebrew/Cellar/sdl2/2.30.1/include
LDLIBS	 			:= -lm -L /opt/homebrew/Cellar/sdl2/2.30.1/lib -l SDL2

在这里插入图片描述
在这里插入图片描述

2.3编译与运行

(base) ➜  lv_port_pc_vscode git:(master)make -j12 && ./build/bin/demo

在这里插入图片描述

### 如何在PlatformIO中设置和使用LVGL模拟器 #### 安装必要的软件包 为了能够在PlatformIO环境中成功配置并使用LVGL模拟器,需要确保已经安装了PlatformIO IDE以及相关依赖项。对于大多数开发者而言,在Windows、Linux或macOS系统上操作都是可行的[^2]。 #### 创建新项目 启动PlatformIO IDE之后,创建一个新的PlatformIO项目。选择适合于桌面应用的目标框架(例如`native`),这允许代码直接编译并在本地机器上执行而不是针对特定微控制器平台。 #### 添加LVGL库 通过PlatformIO Library Manager来添加最新版本的LVGL库至项目当中。打开命令面板(`Ctrl+Shift+P`)输入`PIO: Add Library`,搜索`lvgl`按提示完成添加过程。 #### 配置环境变量 编辑项目的`platformio.ini`文件加入如下配置片段以便启用PC端仿真模式: ```ini [env:native] platform = native board = native framework = none build_flags = -D LV_CONF_INCLUDE_SIMPLE=1 upload_protocol = custom ``` 此部分定义了一个名为`native`的构建环境专门用来处理非嵌入式的应用程序开发工作流;其中设置了宏定义`LV_CONF_INCLUDE_SIMPLE`简化初始化流程方便快速测试[^3]。 #### 编写主程序逻辑 接下来编写C/C++源文件实现想要展示的功能特性。下面给出一段简单的例子用于验证整个搭建是否正常运作: ```c #include "lvgl/lvgl.h" int main(void){ lv_init(); #ifdef LV_USE_WIN static lv_disp_buf_t disp_buf; static lv_color_t buf[LV_HOR_RES_MAX * 10]; lv_disp_drv_t disp_drv; lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); lv_disp_drv_init(&disp_drv); disp_drv.buffer = &disp_buf; #if defined(_WIN32) || defined(__linux__) || defined(__APPLE__) /* Use the 'monitor' driver which creates window on PC to simulate a display */ disp_drv.disp_flush = monitor_flush_cb; // This function will be implemented by you. #endif lv_disp_drv_register(&disp_drv); while (true) { lv_task_handler(); usleep(5 * 1000); /* Sleep for 5 ms */ } #else #error "Unsupported platform" #endif } ``` 上述代码展示了基本结构——初始化LVGL引擎、建立显示缓冲区及其驱动关联关系,并进入事件循环等待交互更新UI状态。注意这里假设存在一个叫做`monitor_flush_cb()`回调函数负责向窗口绘制像素数据,具体实现在不同操作系统间有所差异需自行查阅官方文档获取更多信息[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值