LVGL模拟器-环境搭建

目标

  • 能够搭建lvgl模拟器开发环境

内容

项目源码准

模拟器列表: https://sim.lvgl.io/

8.3版本模拟器: LVGL/MicroPython Simulator

下载模拟器项目

GitHub - lvgl/lv_port_pc_eclipse: PC simulator project for LVGL embedded GUI Library. Recommended on Linux and Mac.

下载lvgl源码

GitHub - lvgl/lvgl: Embedded graphics library to create beautiful UIs for any MCU, MPU and display type.

下载lvgl drivers源码

GitHub - lvgl/lv_drivers: TFT and touch pad drivers for LVGL embedded GUI library

新建工程
  1. 创建目录lvgl_simulator,将此目录作为项目目录.
  2. lv_port_pc_eclipse_master.zip的内容解压到项目目录.
  3. lvgl_master.zip解压,重命名为lvgl,然后移动到项目目录中.
  4. lv_drivers_master.zip解压,重命名为lv_drivers,然后移动到项目目录中.

操作完成后,目录结构如下:

配置MinGW环境

MinGW(Minimalist GNU for Windows)是一个在Windows平台上开发和运行本地(native)应用程序的开发工具集。MinGW的目标是提供一个轻量级、最小化的GNU工具集,使开发者能够在Windows环境下使用类Unix的工具和编程环境。

MinGW的主要组成部分包括:

  1. GCC(GNU Compiler Collection): 一个强大的编译器套件,包括C、C++、Fortran等语言的编译器。
  2. Binutils: 一组用于处理二进制文件的工具,包括汇编器、链接器等。
  3. MSYS(Minimal SYStem): 一个提供类Unix shell环境的工具,使得在Windows环境下使用GNU工具更为方便。

MinGW的主要目标是让开发者能够在Windows上使用开源和跨平台的软件开发工具,而无需依赖于Microsoft Visual Studio等闭源工具。使用MinGW,开发者可以编写和编译与Windows API无关的本地应用程序,这对于跨平台开发和移植代码至Windows平台是非常有用的。

从网盘中下载MinGW之后,解压,然后将它的路径配置到系统的环境变量中

链接:百度网盘 请输入提取码

提取码:6666

1. 解压缩

例如,我将mingw64解压缩到我电脑的C:\devtools\mingw64

2. 配置环境变量

3. 验证环境

使用where命令,可以验证当前配置是否正确

安装CMake

Download CMake

下载cmake安装包并安装,注意将cmake添加至环境变量。

验证安装成功:cmake --version

使用VSCode编译运行

1. 安装c/c++插件
  • C/C++ Extension Pack
  • CMake
  • CMake Tools

2. 通过VSCode工具打开准备好的源码目录

3. 编译运行

打开后,默认会编译一次,如下图

  • 左侧是源码目录结构
  • 右侧输出为编译信息
  • 下方是操作面板

操作面板中有:

  • CMake配置
  • GCC配置
  • Build对源码进行编译
  • 三角形为运行按钮

如果GCC配置部分为空,点击GCC方面进行配置

点击Build对源码进行编译,编译完成后,会多出binbuild目录,将mingw64\x86_64-w64-mingw32\bin里的SDL2.dll拷贝到bin这个目录中。

然后点击下方栏目三角形的运行按钮,运行结果如下:

SDL环境准备(选做)

Simple DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的低级别访问。它被视频播放软件、模拟器和流行游戏使用,包括Valve的获奖目录和许多Humble Bundle游戏。

如果编译过程爆出如下错误,则才需要配置

下载SDL2源码

https://github.com/libsdl-org/SDL/releases/download/release-2.0.22/SDL2-devel-2.0.22-mingw.zip

解压源码

SDL2-devel-2.0.22-mingw.zip解压,解压后目录如下:

下载cmake配置文件

SDL/mingw/pkg-support/cmake at SDL2 · libsdl-org/SDL · GitHub

下载 sdl2-config-version.cmakesdl2-config.cmake两个文件。

新建目录cmake,将这两个文件放入到目录中。

然后将cmake目录,放入到SDL解压目录中,如下图所示:

备份SDL2.dll文件

来到SDL2-2.0.22\x86_64-w64-mingw32\bin目录,备份SDL2.dll文件,等待后续使用

配置MinGW环境

拷贝SDL2-2.0.22下的以下两个目录:

  • cmake
  • x86_64-w64-mingw32

来到MinGW的安装目录,将拷贝的这两个目录粘贴到此目录下,如下图:

问题及解决

重要的事情说三遍:

先确保源码所在目录不包含中文空格!!!

先确保源码所在目录不包含中文空格!!!

先确保源码所在目录不包含中文空格!!!

没有GCC状态栏

VSCode左下角没有GCC设置状态栏

解决:

打开CMake Tools设置

添加 status 过滤,并将hidden选项改成visible

扫描不到Mingw环境

没有GCC

  1. 确保环境变量PATH中已经添加mingw64/bin路径
  2. 点击扫描工具包
  3. 如果仍旧没出现,可重启VSCode或注销、重启电脑。

无法确定要使用的CMake生成器

无法确定要使用的 CMake 生成器。请安装或配置首选生成器,或更新 settings.json、工具包配置

Error: 找不到任何可用的生成器。

解决:

  1. 确保gcc -v是12.2.0以上版本
  2. 确保cmake --version不报错
  3. 按照如下引导配置Cmake插件

给Cmake插件的Generator生成器配置如下内容:

MinGW Makefiles

如果有多个版本的MinGW环境,解决方式点左边箭头展开。

注:

如果有多个版本的MinGW环境,可以将系统变量Path路径里新版本的MinGW的bin路径放最上边,以保证gcc用的是最新版本。如下:

CMake Error

CMake Error: Target DependInfo.cmake file not found

把项目放到不包含中文和空格的目录,删除build文件夹,再进行编译生成

CMake配置项目失败

解决:

删除Build目录,重新编译生成

重置CMake技巧

尝试使用如下方式可以重置cmake的编译环境,可解决很多编译异常问题

F1Ctrl + Shift + P输入cmake reset,按回车即可

然后删除Build目录

重新点选GCC环境

然后点击生成

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是使用VSCode搭建LVGL模拟器环境的示例步骤: 1.首先下载并安装VSCode。 2.使用VSCode的扩展市场搜索并安装"PlatformIO IDE"插件。 3.创建一个新的空文件夹作为您的项目文件夹。 4.在菜单栏中打开"终端"并输入以下命令: platformio init --board esp32dev 5.在文件管理器中打开你创建的文件夹并打开"platformio.ini"文件,修改其中的"[env:esp32dev]"为: [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 lib_deps = lvgl/lvgl #This is the latest release of LVGL lvgl/lvgl_tft #This is the latest release of LVGL’s TFT driver 6.在项目文件夹下创建一个文件夹,比如"src",用于存放源码。 7.在"src"文件夹内创建一个新的文件,比如"main.c"并编辑该文件以实现您的功能。 8.打开"main.c"并添加以下代码段,以在屏幕上绘制一个标签: #include <lvgl/lvgl.h> #include <lvgl/lvgl_tft/lv_tft.h> void app_main(){ lv_init(); tft_init(); lv_disp_drv_t disp_drv; lv_disp_drv_init(&disp_drv); disp_drv.disp_flush = tft_flush; lv_disp_drv_register(&disp_drv); lv_obj_t* label = lv_label_create(lv_scr_act(), NULL); lv_label_set_text(label, "Hello World!"); lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, 0); while(1){ lv_task_handler(); vTaskDelay(5); } } 9.通过"终端"菜单,使用以下命令编译和烧录代码: platformio run --target upload 10.你的代码现在应该成功地烧录到设备上并在LVGL模拟器环境中运行,可以在屏幕上看到一个"Hello World!"的标签。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛慕昭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值