CLion默认已经安装好了。只需要需要下载好官方提供的模板,SDL和MinGW即可。下载链接后文都有给出来。
本文阅读对象在于希望在CLion中实现LVGL模拟器且什么都不会的人群。
本文包含搭建环境的全步骤以及提示,还有一些错误的解决办法。
原文链接:https://blog.csdn.net/qq_44656481/article/details/125208978
https://github.com/lvgl/lv_port_pc_eclipse 通过此链接下载好需要的文件【可能下载速度会很慢】,如下图
下载好的文件夹中lv_drives和lvgl是空文件夹,我们需要在此文件夹中执行一些git命令【会很慢】,也可以按照如下方式下载需要的文件。【没有git不会git命令也行,只需要你会github下载代码即可】
下载https://github.com/lvgl/lvgl中的所有文件
下载好后复制到lvgl文件夹中
下载https://github.com/lvgl/lv_drivers中的所有文件
下载好后复制到lv_drivers文件夹中
这两个链接可以从上图中的.gitmodules
文件中找得到。【我的windows11不能直接打开,需要对这个文件右键➡️显示更多选项➡️编辑 才能查看这个文件】
访问MinGW-w64这个网站。 点击此链接之后,选择Downloads,然后选择超链接SourceForge.【如下图】
在这个界面中找到你需要的版本压缩包,然后下载解压到对应的文件夹中即可。
下载SDL2-devel-x.x.x-mingw.tar.gz这个版本的SDL2压缩包。可以使用解压缩软件查看这个、解压这样的压缩包【比如BandiZIP】 下载链接:Simple DirectMedia Layer - SDL version 2.0.22 (stable)
解压MinGW后可以得到如下文件夹
解压SDL2,可以得到如下的一些文件 如果MinGW下载的是x86_64_w64那就进入到SDL2的这个x86_64_w64文件夹中,可以看到如下文件夹。
在设置中找到构建、执行、部署,然后新建一个给LVGL使用的MinGW环境。 构建工具、C编译器、C++编译器的路径应该如下图一样详细指定好,而不是只到了bin文件夹或者让它空着【由CMake自己识别】,如第二张图,这是错误的,会导致编译出错。
用CLion打开lv_port_pc_eclipse这个工程即可,选择打开为CMake项目,然后选择信任项目,在项目向导里选择好你之前自定义的MinGW,然后编译即可。如果编译出错,请继续查看后文。
可以将本工程中需要用到的MinGW下的bin文件夹路径设置为环境变量,并用cmd的gcc -v命令查看是否添加成功。如果没有设置环境变量,需要在配置CLion环境时候指定好对应的MinGW的位置,否则将会编译出错。
可以将之前解压SDL
文件夹的Include
下的SDL2
整个文件复制到此项目当中。【编译不报错的话,不需要修改CMakeLists.txt】
#error "LV_GRAD_CACHE_DEF_SIZE is too small"
请找到报错行,并且给报错的这几行添加注释即可。
有可能放置到C:\Windows\System32这里也会出现一些问题。
提供解决方案。 检查CMakeLists.txt文件的SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
这一行中是否是BINARAY,如果不是,请修改为BINARY,然后重新加载编译、执行【绿色三角形按键】。然后会多出一个bin文件夹,再将SDL2.dll复制进来即可。
如果始终没有bin文件夹,可以尝试手动创建一个然后将SDL2.dll复制进来。
那么你最好按照我的步骤重新下载一个MinGW。这并不会对你CLion中已经配置过的有影响。【如果你没有配置环境变量的话】 如果你按照博客后下载好了MinGW,并且给这个MinGW配置好了环境变量,那么可能会有影响。 解决办法:通过指定更详细的路径,和前文操作一样。
根据报错信息的最后一段可知,是缺少了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版本的。
对应的就需要下图中这两个仓库里的文件,并按照前文所述,放到对应的文件夹中。
一开始我忽略了这个问题,导致出现了很多奇怪的问题。【2022-12-31】
大概率是给MinGW添加SDL相关文件时出了错。
待补充……
由于lvgl一直处于更新的状态,所以有时候版本太新容易导致一些错误。比如写博客的时候,全部跑通了一下整个流程,发现#error "LV_GRAD_CACHE_DEF_SIZE is too small"
这个报错。而这在之前是没有过的。
EmbeddedProjectTemplates (github.com)https://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