CLion搭建lvgl模拟器环境

说明和准备过程

CLion默认已经安装好了。只需要需要下载好官方提供的模板,SDLMinGW即可。下载链接后文都有给出来。

本文阅读对象在于希望在CLion中实现LVGL模拟器且什么都不会的人群。

本文包含搭建环境的全步骤以及提示,还有一些错误的解决办法。

原文链接:https://blog.csdn.net/qq_44656481/article/details/125208978

官方模板下载

https://github.com/lvgl/lv_port_pc_eclipse 通过此链接下载好需要的文件【可能下载速度会很慢】,如下图 

CLion搭建lvgl模拟器环境_第1张图片

 下载好的文件夹中lv_driveslvgl是空文件夹,我们需要在此文件夹中执行一些git命令【会很慢】,也可以按照如下方式下载需要的文件。【没有git不会git命令也行,只需要你会github下载代码即可】

  • 下载https://github.com/lvgl/lvgl中的所有文件

  • 下载好后复制到lvgl文件夹中

  • 下载https://github.com/lvgl/lv_drivers中的所有文件

  • 下载好后复制到lv_drivers文件夹中

这两个链接可以从上图中的.gitmodules文件中找得到。【我的windows11不能直接打开,需要对这个文件右键➡️显示更多选项➡️编辑 才能查看这个文件】

MinGW下载及安装

访问MinGW-w64这个网站。 点击此链接之后,选择Downloads,然后选择超链接SourceForge.【如下图】 

CLion搭建lvgl模拟器环境_第2张图片

在这个界面中找到你需要的版本压缩包,然后下载解压到对应的文件夹中即可。 

CLion搭建lvgl模拟器环境_第3张图片

SDL下载及安装

下载SDL2-devel-x.x.x-mingw.tar.gz这个版本的SDL2压缩包。可以使用解压缩软件查看这个、解压这样的压缩包【比如BandiZIP】 下载链接:Simple DirectMedia Layer - SDL version 2.0.22 (stable) 

CLion搭建lvgl模拟器环境_第4张图片

MinGW和SDL2

解压MinGW后可以得到如下文件夹 

CLion搭建lvgl模拟器环境_第5张图片

 解压SDL2,可以得到如下的一些文件  如果MinGW下载的是x86_64_w64那就进入到SDL2的这个x86_64_w64文件夹中,可以看到如下文件夹。  

CLion搭建lvgl模拟器环境_第6张图片

  • SDL2/x86_64_w64-mingw32/include/SDL2复制到MinGW/ x86_64_w64-mingw32/include文件夹中
  • SDL2/x86_64_w64-mingw32/lib所有的文件复制到MinGW/ x86_64_w64-mingw32/lib

CLion的配置

在设置中找到构建、执行、部署,然后新建一个给LVGL使用的MinGW环境。 构建工具、C编译器、C++编译器的路径应该如下图一样详细指定好,而不是只到了bin文件夹或者让它空着【由CMake自己识别】,如第二张图,这是错误的,会导致编译出错。 

CLion搭建lvgl模拟器环境_第7张图片

CLion搭建lvgl模拟器环境_第8张图片

工程

CLion打开lv_port_pc_eclipse这个工程即可,选择打开为CMake项目,然后选择信任项目,在项目向导里选择好你之前自定义的MinGW,然后编译即可。如果编译出错,请继续查看后文。 

CLion搭建lvgl模拟器环境_第9张图片

CLion搭建lvgl模拟器环境_第10张图片

一些错误和一些容易忽视的点

如果你有很多个MinGW

可以将本工程中需要用到的MinGW下的bin文件夹路径设置为环境变量,并用cmdgcc -v命令查看是否添加成功。如果没有设置环境变量,需要在配置CLion环境时候指定好对应的MinGW的位置,否则将会编译出错。

找不到SDL2.h这个头文件

可以将之前解压SDL文件夹的Include下的SDL2整个文件复制到此项目当中。【编译不报错的话,不需要修改CMakeLists.txt】

#error "LV_GRAD_CACHE_DEF_SIZE is too small"

请找到报错行,并且给报错的这几行添加注释即可。

SDL2的bin文件下的SDL2.dll

有可能放置到C:\Windows\System32这里也会出现一些问题。

提供解决方案。 检查CMakeLists.txt文件的SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)这一行中是否是BINARAY,如果不是,请修改为BINARY,然后重新加载编译、执行【绿色三角形按键】。然后会多出一个bin文件夹,再将SDL2.dll复制进来即可。

如果始终没有bin文件夹,可以尝试手动创建一个然后将SDL2.dll复制进来。

MinGW没有x86_64…或者i686…这样的文件夹

那么你最好按照我的步骤重新下载一个MinGW。这并不会对你CLion中已经配置过的有影响。【如果你没有配置环境变量的话】 如果你按照博客后下载好了MinGW,并且给这个MinGW配置好了环境变量,那么可能会有影响。 解决办法:通过指定更详细的路径,和前文操作一样。

Could not find a package configuration file provided by "SDL2" with any of the following names: SDL2Config.cmake sdl2-config.cmake以及编译成功但鼠标卡死问题

CLion搭建lvgl模拟器环境_第11张图片

根据报错信息的最后一段可知,是缺少了SDL2的路径,导致find_package找不到路径,所以,可以通过SET命令添加路径。

路径指的是SDL中对应的lib/cmake/SDL2,也可以是复制到MinGW下对应的lib/cmake/SDL2文件夹。

CMakeLists.txt中指定好SDL2的路径,命令如下:

SET(SDL2_DIR F:/EmbeddedCode/SimulatorForLVGL/mingw64/x86_64-w64-mingw32/lib/cmake/SDL2/)

这条SET命令仅做参考,请将自己的本地文件目录添加进来,不能照搬我的,这是一条示范!!!

注意版本一致

可以在github上看到当前仿真工程是在哪个版本上跑得通的。比如我将仿真工程设置为8.3版本的。

CLion搭建lvgl模拟器环境_第12张图片

对应的就需要下图中这两个仓库里的文件,并按照前文所述,放到对应的文件夹中。

CLion搭建lvgl模拟器环境_第13张图片

 一开始我忽略了这个问题,导致出现了很多奇怪的问题。【2022-12-31】

其他报错

大概率是给MinGW添加SDL相关文件时出了错。

待补充……

总结

由于lvgl一直处于更新的状态,所以有时候版本太新容易导致一些错误。比如写博客的时候,全部跑通了一下整个流程,发现#error "LV_GRAD_CACHE_DEF_SIZE is too small"这个报错。而这在之前是没有过的。

本文项目地址【2023-4-5】

EmbeddedProjectTemplates (github.com)icon-default.png?t=N2N8https://github.com/suguguan/EmbeddedProjectTemplates

参考

Windows下CLion配置SDL2开发环境https://blog.gaein.cn/passages/Config-SDL2-On-CLion-Win/

LVGL模拟器在Clion下的实现(Win10)https://blog.csdn.net/Sharpneo/article/details/120915076

LVGL的使用:运行LVGL的PC模拟器例程https://blog.csdn.net/weixin_44030167/article/details/112136788

你可能感兴趣的:(CLion,LVGL,c语言)