win下VSCode with SDL2配置LVGL模拟器开发环境

0. 序言
上篇文章基于MSYS2的MINGW64 GCC和CMake在Win下VSCode里搭建SDL2开发环境 中, 我们在VSCode里搭建好了SDL2的开发环境, 以此为基础, 本文我们要搭建起LVGL模拟器的开发环境, 达到我们的最终目的.
本文也有个所谓的参考文章https://my.oschina.net/u/5732601/blog/5518641.
它和上篇文章中的参考文章是同一个作者的系列文章.
如果说上一篇的参考文章只是有些不详细不严谨和一些小坑的话, 那这篇参考文章就是巨坑!!
我一开始自然是参考它的方法操作, 可是编译始终是一堆错误, 怎么都编译不过. 我被它坑惨了, 掉在坑里, 想了各种方法, 各种尝试, 浪费了多少脑细胞, 浪费了大半天的时间, 还是爬不出来.
最终幡然醒悟, 抛弃它, 按照自己的理解, 摸索出自己的方法, 轻松搞定! 唉…
接下来本文就描述一下我摸索出的方法.
1. 基于LVGL最新版源码 的模拟器
1.1 下载代码
我在网上看到很多搭建LVGL模拟器的文章, 都是基于github上lvgl/lv_port_pc_eclipse这个代码仓库来做的.
我们也选择它, 虽然它是For eclipse的, 其实只是目录下多了些eclipse相关的工程文件, 我们不用不理这些文件便是.
它也是用CMake编译的, 所以其实只要把这个仓库代码clone下来, 稍稍修改一下根目录下的CMakeList.txt
文件即可顺利编译成功.
我摸索出的方法就是如此, 一点也不复杂麻烦, 改动的也很少.
下图是当前(@20230330)lvgl/lv_port_pc_eclipse
这个仓库的一个截图:

可看到, 其下只有一个文件夹lvgl
, 是个外链仓库, 就是LVGL本体的源码, 不过它不是LVGL源码的master分支(master分支目前是稳定版V8.3), 而是正在开发中V9.0的最新版分支(73b4460)代码, 仓库地址: https://github.com/lvgl/lvgl/tree/73b446015a06055e984cc26e5cba744096409895
下图是此仓库的当前截图.

BTW: 跑题一下, 在上图里, .gitignor这一行, 可发现 最新版的LVGL已经支持中文的拼音输入了, nice.
最正确的下载代码的方法, 应该是用下面命令就可以把所有代码都clone下来了.
git clone --recursive https://github.com/lvgl/lv_port_pc_eclipse.git
但是, 以往的经验, 众所周知的原因, 我们直接从github clone代码是很艰难的, 特别是这种带外链仓库的情况就更恼火.
所以, 我用的是下载zip的方式, 分别把2个仓库下载好, 然后再组装在一起.
不管用什么方法, 代码准备好就OK.
1.2 修改CMakeList.txt
打开代码根目录下的CMakeList.txt文件, 内容如下:
我修改后如下:
仅修改了5行:
注释掉了原文中关于SDL2的2行, 因为我们要加入SDL2的库链接
加入3行库链接target_link_libraries, 而且这3行和上一篇"搭建SDL开发环境"中测试程序里修改的一样
另外, 我还将 编译目标--可执行文件名 改成了aaa, 这一点可以不用改
1.3 编译运行
OK, 都改好了, VSCode打开此代码目录就可以直接F7编译了.
不过这里有个需注意点, "编译目标--可执行文件名" 要和 代码根目录名 一致, 否则也会编译出错.
编译成功后, 会在根目录的bin目录下 生成exe文件, 运行效果如下:

2. 基于LVGL V7版 的模拟器
由于我的嵌入式设备上跑的是LVGL V7.11版本, 而且LVGL V8相对于V7变动不小, 很多API函数都变了.
所以我的模拟器的版本最好还是要用V7的, 唉, 还要继续搞.
不过搞定了一次, 套路都是一样的.
2.1 下载V7版代码
还是先下载代码, 还是在lvgl/lv_port_pc_eclipse这个仓库页面,

可看到这里有11个分支, 点进去

再点这里, 就可打开V7.0分支的代码仓库
这个代码仓库的情况如下图:

有3个子目录, 且都是外链仓库
lv_drivers(分支ccf30bf): https://github.com/lvgl/lv_drivers/tree/ccf30bf0c3dd9b1000de6c68cc6b0b6683303770
lv_examples(lv_demos分支51537bf): https://github.com/lvgl/lv_demos/tree/51537bf46e77f4e99e3fb94131b1e54da981c4f4
lvgl(分支aad8667): https://github.com/lvgl/lvgl/tree/aad8667a9f9dce82f719aec24f64dbe42f729ad0
还是用和前面一样的方法, 不管使用git clone --recursive
命令, 还是下载zip组装, 把代码准备好就行.
2.2 修改CMakeList.txt
CMakeList.txt的修改套路还是一样, 我就直接放出我修改后的内容了
同样的方法, 注释掉它原文关于SDL2
的行, 把我的3行target_link_libraries(...)
加进去, 就改好了!
2.3 编译运行
还是要注意 编译目标--可执行文件名 和 代码根目录名 的一致.
编译运行, 效果如下

OK, 全部搞定!