win下VSCode with SDL2配置LVGL模擬器開發(fā)環(huán)境

0. 序言
上篇文章基于MSYS2的MINGW64 GCC和CMake在Win下VSCode里搭建SDL2開發(fā)環(huán)境?中, 我們在VSCode里搭建好了SDL2的開發(fā)環(huán)境, 以此為基礎, 本文我們要搭建起LVGL模擬器的開發(fā)環(huán)境, 達到我們的最終目的.
本文也有個所謂的參考文章https://my.oschina.net/u/5732601/blog/5518641.
它和上篇文章中的參考文章是同一個作者的系列文章.
如果說上一篇的參考文章只是有些不詳細不嚴謹和一些小坑的話, 那這篇參考文章就是巨坑!!
我一開始自然是參考它的方法操作, 可是編譯始終是一堆錯誤, 怎么都編譯不過. 我被它坑慘了, 掉在坑里, 想了各種方法, 各種嘗試, 浪費了多少腦細胞, 浪費了大半天的時間, 還是爬不出來.
最終幡然醒悟, 拋棄它, 按照自己的理解, 摸索出自己的方法, 輕松搞定! 唉…
接下來本文就描述一下我摸索出的方法.
1. 基于LVGL最新版源碼 的模擬器
1.1 下載代碼
我在網(wǎng)上看到很多搭建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分支目前是穩(wěn)定版V8.3), 而是正在開發(fā)中V9.0的最新版分支(73b4460)代碼, 倉庫地址:?https://github.com/lvgl/lvgl/tree/73b446015a06055e984cc26e5cba744096409895
下圖是此倉庫的當前截圖.

BTW: 跑題一下, 在上圖里, .gitignor這一行, 可發(fā)現(xiàn) 最新版的LVGL已經(jīng)支持中文的拼音輸入了, nice.
最正確的下載代碼的方法, 應該是用下面命令就可以把所有代碼都clone下來了.
git clone --recursive https://github.com/lvgl/lv_port_pc_eclipse.git
但是, 以往的經(jīng)驗, 眾所周知的原因, 我們直接從github clone代碼是很艱難的, 特別是這種帶外鏈倉庫的情況就更惱火.
所以, 我用的是下載zip的方式, 分別把2個倉庫下載好, 然后再組裝在一起.
不管用什么方法, 代碼準備好就OK.
1.2 修改CMakeList.txt
打開代碼根目錄下的CMakeList.txt文件, 內(nèi)容如下:
我修改后如下:
僅修改了5行:
注釋掉了原文中關于SDL2的2行, 因為我們要加入SDL2的庫鏈接
加入3行庫鏈接target_link_libraries, 而且這3行和上一篇"搭建SDL開發(fā)環(huán)境"中測試程序里修改的一樣
另外, 我還將 編譯目標--可執(zhí)行文件名 改成了aaa, 這一點可以不用改
1.3 編譯運行
OK, 都改好了, VSCode打開此代碼目錄就可以直接F7編譯了.
不過這里有個需注意點, "編譯目標--可執(zhí)行文件名" 要和?代碼根目錄名?一致, 否則也會編譯出錯.
編譯成功后, 會在根目錄的bin目錄下 生成exe文件, 運行效果如下:

2. 基于LVGL V7版 的模擬器
由于我的嵌入式設備上跑的是LVGL V7.11版本, 而且LVGL V8相對于V7變動不小, 很多API函數(shù)都變了.
所以我的模擬器的版本最好還是要用V7的, 唉, 還要繼續(xù)搞.
不過搞定了一次, 套路都是一樣的.
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的修改套路還是一樣, 我就直接放出我修改后的內(nèi)容了
同樣的方法, 注釋掉它原文關于SDL2
的行, 把我的3行target_link_libraries(...)
加進去, 就改好了!
2.3 編譯運行
還是要注意?編譯目標--可執(zhí)行文件名?和?代碼根目錄名?的一致.
編譯運行, 效果如下

OK, 全部搞定!