vscode 插件
需安装以下插件并配置:
C/C++ Extension Pack
CMake
CMake Tools
然后选择编译器。
下载 LVGL 相关
(1)下载 Releases · lvgl/lvgl
(2)下载 LVGL 项目,现在官网没有最新的,用 9.2.2 然后修改。
lvgl 8 版本的需要下载 lv_drivers,但是 9 版本的不需要,因为内置了 lv_drivers
把 lvgl 复制进去,然后把 lvgl9.3.0 的 conf 文件替换原来的。
集成 SDL2 环境
(1)下载 Releases · libsdl-org/SDL

解压后的文件夹放在用一个地方,如 D:/ProgramFiles/Compile_Tools/SDL2-2.32.10,后面会用到。
解压后直接复制 x86_64-w64-mingw32 目录到 mingw64 安装路径 D:\ProgramFiles\Compile_Tools\mingw64 路径下,如果是第一次搞的话,不会出现相同的文件覆盖提示。
感觉这一步没有用,后面还是需要手动指定才行。
后面试试不在mingw中搞这个会怎么样。
修改cmake
编译时找不到 SDL2.dll 会失败。
(1)把原来的:
find_package(SDL2 REQUIRED SDL2)改为:
file(COPY "D:/ProgramFiles/Compile_Tools/mingw64/x86_64-w64-mingw32/bin/SDL2.dll" DESTINATION ../bin)(2)添加在 target_link_libraries 这行代码之前
set(SDL2_DIR "D:/ProgramFiles/Compile_Tools/SDL2-2.32.10")
include_directories(${SDL2_DIR}/include)
link_directories(${SDL2_DIR}/x86_64-w64-mingw32/lib)(3)把
target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} m pthread)修改为
target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} m pthread SDL2 SDL2main)(4)注释这两行
# target_compile_options(main PRIVATE -fsanitize=address,leak,undefined)
# target_link_options(main PRIVATE -fsanitize=address,leak,undefined)demo 展示
(1)打开 demo:
#if LV_BUILD_DEMOS
/** Show some widgets. This might be required to increase `LV_MEM_SIZE`. */
#define LV_USE_DEMO_WIDGETS 1(2)打开 SDL 驱动
#define LV_USE_SDL 1(3)必须把内存搞大点,原来是64 * 1024,运行时黑屏闪退,改大点就好了。
#define LV_MEM_SIZE (256 * 1024U) /**< [bytes] */(4)lvgl 9.0 内置了lv_drivers,因此需要在 main.c 添加头文件:
#include "lvgl/src/drivers/sdl/lv_sdl_keyboard.h"
#include "lvgl/src/drivers/sdl/lv_sdl_mouse.h"
#include "lvgl/src/drivers/sdl/lv_sdl_mousewheel.h"
#include "lvgl/src/drivers/sdl/lv_sdl_window.h"然后编译运行。