VSCode
环境准备
编译器:
vscode
安装 C/C++ 插件
安装 CMake Tools 插件
最好也将 vscode 添加到环境变量中
如果 VSCode 中使用了 ESP-IDF 插件可以先禁用掉,防止干扰;实际不影响,但是会存在一些不必要的警告;
编译工具链:
MinGW-64
安装后记得要添加到环境变量,使用 gcc -v 验证是否配置成功
编译环境
Download CMake,安装后要添加到环境变量 /bin
工具包:
lvgl(内核)
lv_drivers(驱动)(如果你使用的是 v9 版本的 LVGL 则可以不需要这个驱动库)
lv_port_pc_eclipse(模拟器)
SDL2(开源的图形库) 下载 SDL2-devel-xxx-mingw 这个版本的
lvgl、lvgl_drivers、lvgl_port_pc_eclipse 三者最好保证版本一致以防出现兼容性错误,示例中统一使用的是 v8.3 版本;
SDL2 是一个开源的图形库能够直接在屏幕上绘制像素、图像、文本等,lvgl_port_pc_eclipse 需要依赖于该图形库;
lvgl、lvgl_port_pc_eclipse 二者一定要保证一致,示例 v9.2.2 也是可以使用的;
环境配置
工具链配置
解压 SDL2 这个库,将其中的 cmake 和 x86_64-w64-mingw32 复制到 MinGW-64 的目录下:
编码准备
新建一个目录 lvgl_Demo 作为工程目录:
将 lvgl_port_pc_eclipse 下的所有文件拷贝到 lvgl_Demo 目录下(不是将 lvgl_port_pc_eclipse 这个目录拷贝到 lvgl_Demo 目录下)
将 lvgl 下文件拷贝到 lvgl目录下
新建 lvgl_drivers 目录,将 lvgl_drivers 下文件拷贝到 lvgl_drivers 目录下:
编译器配置
准备完成后后可以通过命令面板 (Ctrl+Shift+P),输入并选择 CMake: Select a Kit,选择我们要使用的 GCC 编译器;
在选择完工具链后,点击底部 CMake Tools 工具栏中的 生成 按钮,即可生成对应的 .exe 文件。
构建完成后,生成的可执行文件会位于工程目录下的 bin 文件夹中。
需要注意的是,如果直接运行 .exe 文件,可能会提示缺少 SDL2.dll 文件。这是因为运行程序需要动态链接库支持。为了解决这个问题,需要将 SDL2/x86_64-w64-mingw32/bin 目录下的 SDL2.dll 文件复制到生成的 .exe 文件所在的目录中。
完成上述操作后,运行程序即可正常启动,运行效果如下所示:
Code::Blocks
环境准备
Code::Blocks
Code::Blocks
编译工具链:
MinGW-64
安装后记得要添加到环境变量,使用 gcc -v 验证是否配置成功
工具包
lvgl(内核)
lv_port_win_codeblocks(模拟器)
lvgl、lvgl_port_win_codeblocks 二者最好保证版本一致以防出现兼容性错误;示例中统一使用的是 v9.2.2 版本
错误
一、在使用 lv_port_pc_eclipse 模拟器时报错 cannot find -lasan: No such file or directory、cannot find -lubsan: No such file or directory
这里错误是因为 win 下 MinGW 默认安装不包含这些库(libasan.a 和 libubsan.a);
需要注释掉 CMakeLists.txt 中的:
1 | // CMakeLists.txt 中注释掉如下代码: |
二、thorvg.h 中报错 uint8_t 和 uint32_t 未声明,且 enum class BlendMethod 相关的语法错误
这个错误与 uint8_t 未定义直接相关。enum class BlendMethod : uint8_t 使用了 C++11 的强类型枚举(scoped enum),其基础类型是 uint8_t。由于 uint8_t 未定义,编译器无法解析 enum class 的定义,导致后续的语法错误。
在 thorvg.h 中添加对应头文件即可:
1 | // thorvg.h |