windows下用Qt Creator运行LVGL 8.2
背景
最近在学习LVGL,手头又没有硬件,好多网上资料介绍了如何在PC端模拟,纯C语言实现的库模拟的话也不会复杂,恰巧本人熟悉Qt Creator,那就用这个环境模拟吧,网上搜索到了两篇关于Qt Creator模拟的LVGL的文章,感觉比较复杂并且版本也比较旧了,因此将自己实现的过程记录分享给大家。
1、准备好Qt Creator
这里不再赘述了,我电脑安装的Qt Creator 4.14.2,编译器用的是MinGW32
2、准备原材料
官方提供的eclipse工程,用cmake构建的,直接用Qt Creator就能直接编译了
GitHub - lvgl/lv_port_pc_eclipse at release/v8.2
lvgl 8.2 源码
GitHub - lvgl/lvgl at release/v8.2
lvgl 驱动
GitHub - lvgl/lv_drivers at release/v8.2
SDL2——开放源代码的跨平台多媒体开发库(minGW平台下)
SDL2-devel-2.26.1-mingw.zip
对于github上代码下载,直接code->download zip就可以了,如果你熟悉git工具,直接用git clone eclipse工程更加方便,因为里面链接了lv_driver、lvgl,就不用单独再下载。
3、工程创建
解压上面下载的4个压缩包,将解压后的目录改名,去掉后缀,修改后:lv_drivers, lv_port,lv_port_pc_eclipse,lvgl,SDL2;
将lv_drivers,lv_port,lvgl,SDL2剪切到lv_port_pc_eclipse,其目录中文件列表如下图
4、修改CMakeLists.txt
原因可略过:
为啥要修改CMakeLists.txt文件呢?其实一开始我也没修改,直接将解压的SDL2文件夹添加到了PATH的环境变量中了,find_package(SDL2 REQUIRED SDL2)发现了SDL2,但是构建的时候提示找不到-lSDL,如果你知道原因请给我留言哈。我就按自己的理解把cmake文件修改了,主要做了两个工作:添加头文件路径,添加动态库。
cmake_minimum_required(VERSION 3.10)
project(lvgl)
set(CMAKE_C_STANDARD 11)#C11
set(CMAKE_CXX_STANDARD 17)#C17
set(CMAKE_CXX_STANDARD_REQUIRED ON)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR})
file(GLOB_RECURSE INCLUDES "lv_drivers/*.h" "lv_demos/*.h" "lvgl/*.h" "./*.h" )
file(GLOB_RECURSE SOURCES "lv_drivers/*.c" "lv_demos/*.c" "lvgl/*.c" )
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
SET(CMAKE_CXX_FLAGS "-O3")
link_directories("SDL2/i686-w64-mingw32/bin")
include_directories("SDL2/i686-w64-mingw32/include")
add_executable(main main.c mouse_cursor_icon.c ${SOURCES} ${INCLUDES})
add_compile_definitions(LV_CONF_INCLUDE_SIMPLE)
target_link_libraries(main PRIVATE SDL2.dll)
#find_package(SDL2 REQUIRED SDL2)
#include_directories(${SDL2_INCLUDE_DIRS})
#add_executable(main main.c mouse_cursor_icon.c ${SOURCES} ${INCLUDES})
#add_compile_definitions(LV_CONF_INCLUDE_SIMPLE)
#target_link_libraries(main PRIVATE SDL2 )
#link_directories("../out/build/x64-Debug/lib")
#add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main)
5、构建运行
打开Qt Creator,文件->打开文件或项目,打开 lv_port_pc_eclipse下的CMakeLists.txt文件,点击构建,不出意外编译通过,点击运行