背景
LVGL是偶然间发现的轻量级的,用C语言面向对象思想编写的完全开源的GUI。可以在单片机、Linux上通吃,感觉还不错,准备研究一下。首先,就是感受一下效果。目前,还没有类似于Qt Creator之类的IDE,不过有基于Eclipse、VS等做的模拟器。网上很多都是基于这两个IDE做的例子,从开始学习编程就是在Linux,不太习惯windows,还好有VScode。LVGL也有基于VSocde的模拟器。
说是模拟器,其本质就是通过VScode来编译并运行程序而已。底层使用的SDL2,来模拟显示设备。
搭建环境
安装SDL2,通过源码或者命令行
- https://www.libsdl.org/
sudo apt-get update && sudo apt-get install -y build-essential libsdl2-dev
从GitHub上下载模拟器源码
git clone --recursive https://github.com/lvgl/lv_sim_vscode_sdl
由于是GitHub,源码数量比较大,比较耗时,中断了无数次,终于下载完成。
目录结构如下
# lv_sim_vscode_sd
.
├── ~
├── licence.txt
├── lv_conf.h
├── lv_demo_conf.h
├── lv_drivers
├── lv_drv_conf.h
├── lv_examples
├── lvgl
├── main
├── Makefile
├── README.md
├── simulator.code-workspace
└── ui
-
lvgl
GUI核心源码
-
lv_drivers
显示设备、输入设备等驱动
-
lv_examples
GUI示例程序
-
main
程序入口
-
*_conf.h
配置头文件
编译
通过VScode打开工程,执行F5进行编译运行,会遇到下面的错误。
Building project file: lv_examples/src/lv_demo_widgets/lv_demo_widgets.c
gcc: error: unrecognized command line option ‘-Wshift-negative-value’
Makefile:44: recipe for target 'build/obj/lv_examples/src/lv_demo_widgets/lv_demo_widgets.o' failed
make: *** [build/obj/lv_examples/src/lv_demo_widgets/lv_demo_widgets.o] Error 1
The terminal process "/bin/bash '-c', 'make'" failed to launch (exit code: 2).
原因应该是低版本的GCC不支持该参数吧,直接在顶层Makefile中找到并去掉。再次运行F5,成功出图。