注:本文默认已经安装好了CLion,目标LVGL的版本为8.3,当然新版本也是可以的,都差不多。

需要准备的文件

  • lv_port_pc_eclipse

    使用下列命令克隆仓库到本地(本文以8.3版本为例)

1
git clone -b release/v8.3 --recursive http://10.1.1.11/service/tmall-service.git

image-20241028130733571

image-20241028130851970

配置环境

  1. 解压下载的mingw64,得到如下文件

image-20241028183539520

  1. 解压下载的SDL2,得到如下文件

image-20241028183713461

SDL2/x86_64_w64-mingw32/include/SDL2复制到mingw64/x86_64_w64-mingw32/include文件夹中

SDL2/x86_64_w64-mingw32/lib所有的文件复制到mingw64/x86_64_w64-mingw32/lib

  1. CLion配置工具链

image-20241028184123222

设置 - 构建、执行、部署 - 工具链新建如上工具链,注意所有工具都参考上图设置成对应的,用内部集成的会报错。

  1. 工程

用CLion打开lv_port_pc_eclipse为CMake项目,然后即可进行开发。

一些报错

  1. CMake找不到SDL2库

image-20241028184609315

解决办法:在CMakeLists.txt里添加如下语句,注意不要照抄,请将自己的本地文件目录添加进来

1
SET(SDL2_DIR D:/program-tools/mingw64/x86_64-w64-mingw32/lib/cmake/SDL2)
  1. 编译成功,但是运行程序会直接退出,没有GUI界面出现

image-20241028185226640

解决办法:将下载的SDL2库的SDL2.dll复制到lv_port_pc_eclipse下的bin文件夹里

  1. 分辨率可在lv_drv_conf.h里修改

image-20241028190804549

与SquareLine Studio联合开发

将SquareLine Studio生成的ui文件夹复制到lv_port_pc_eclipse下,在CmakeLists.txt里添加如下语句,注意不要照抄,请将自己的本地文件目录添加进来

1
2
3
4
# 递归引用ui下的源文件
FILE(GLOB_RECURSE UI_Sources CONFIGURE_DEPENDS ui/*.c ui/*.cpp)
# 将${UI_Sources}添加到add_executable以对main这个target使用
add_executable(main main.c mouse_cursor_icon.c ${SOURCES} ${INCLUDES} ${UI_Sources})

在main.c里添加如下代码:

1
2
3
4
5
6
7
8
9
10
#include "ui.h"

int main(int argc, char **argv) {
(void) argc; /*Unused*/
(void) argv; /*Unused*/
...
ui_init();
...
return 0;
}

记得注释掉lvgl自带的示例代码,编译即可运行SquareLine Studio生成的代码

LVGL学习资料