欢迎光临散文网 会员登陆 & 注册

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

2023-07-11 17:52 作者:有AI野心的电工和码农  | 我要投稿

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, 全部搞定!


win下VSCode with SDL2配置LVGL模拟器开发环境的评论 (共 条)

分享到微博请遵守国家法律