LVGL的官方代码库中提供基于eclipse配置下载,这里配置了基于win10环境下使用cmake的配置方法,还添加了百问网上的lvgl的仓库。如果需要开发自己的GUI应用,可以在lv_lib_100ask中添加对应的代码,以子模块的方式添加到模拟器中,方便模拟中的应用和实际工程项目保持一致。
编译环境
从下面的链接中下载mingw64,解压后复制到D:\Program Files\mingw64
,并复制mingw32-make.exe
为make.exe
,再将该路径添加到Path
环境变量中。
https://udomain.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
再下载cmake-3.24.2-windows-x86_64.zip
,解压到D:\Program Files\cmake-3.24.2-windows-x86_64
后,再将该路径了添加到Path
环境变量中。
https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-windows-x86_64.zip
模块器用到了SDL
,因此需要下载对应的文件,将该压缩包解压后复制到源码的目录中,注意在本例中更改了SDL
目录的名称:
SDL2-devel-2.24.0-mingw.zip
下载源码
先下载lvgl的官方模拟器代码:
https://github.com/lvgl/lv_port_pc_eclipse.git
再下载网上的例程,代码放到lv_port_pc_eclipse
目录中:
https://gitee.com/weidongshan/lv_lib_100ask.git
最后的目录如下:
tree -L 1
.
├── CMakeLists.txt
├── SDL2
├── lv_conf.h
├── lv_drivers
├── lv_drv_conf.h
├── lv_lib_100ask
├── lv_lib_100ask_conf.h
├── lvgl
├── main.c
├── mouse_cursor_icon.c
├── out
其中out
目录是自己新建的,用于存放编译的中间文件和可执行文件。
修改CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(lv_sim)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 11)
include_directories(
.
./lv_drivers
./lvgl
./lv_lib_100ask
./SDL2/include
)
add_subdirectory(lvgl)
add_subdirectory(lv_drivers)
add_subdirectory(lv_lib_100ask)
link_directories(${PROJECT_SOURCE_DIR}/SDL2/lib) #添加动态连接库的路径
message("link dir: ${PROJECT_SOURCE_DIR}")
find_library(libSDL2main SDL2main ${PROJECT_SOURCE_DIR}/SDL2/lib)
find_library(libSDL2 libSDL2 ${PROJECT_SOURCE_DIR}/SDL2/lib)
message("lib dir: ${libSDL2main}")
message("lib dir: ${libSDL2}")
add_executable(${PROJECT_NAME} main.c mouse_cursor_icon.c ${SOURCES} ${INCLUDES})
#target_link_libraries(${PROJECT_NAME} PUBLIC lvgl lvgl::examples lvgl::demos lvgl::drivers lv_app ${libSDL2main} ${libSDL2})
target_link_libraries(${PROJECT_NAME} PRIVATE lvgl lvgl::examples lvgl::demos lvgl::drivers lv_lib_100ask ${libSDL2main} ${libSDL2})
编译运行
进入out
目录,生成Makefie:
cmake -G "Unix Makefiles" ..
执行编译:
PS D:\dolphin\work\lv_port_pc_eclipse\out> make -j
lib dir: D:/dolphin/work/lv_port_pc_eclipse/SDL2/lib/libSDL2main.a
lib dir: D:/dolphin/work/lv_port_pc_eclipse/SDL2/lib/libSDL2.dll.a
-- Configuring done
-- Generating done
-- Build files have been written to: D:/dolphin/work/lv_port_pc_eclipse/out
[100%] Linking C executable lv_sim.exe
[100%] Built target lv_sim
将\SDL2\bin\SDL2.dll
复制到out
目录,再双击运行编译的可执行文件lv_sim.exe
即可运行模拟器。
以下对应的打开lv_lib_100ask_conf.h
中的计算器
宏:
/*Calculator*/
#define LV_USE_100ASK_CALC 1
#if LV_USE_100ASK_CALC
/*Calculation expression*/
#define LV_100ASK_CALC_EXPR_LEN (128) /*Maximum allowed length of expression*/
#define LV_100ASK_CALC_MAX_NUM_LEN (5) /*Maximum length of operands allowed*/
/*test*/
#define LV_100ASK_CALC_SIMPLE_TEST 1
#endif
在main.c
中添加:
#include "lv_lib_100ask.h"
在int main(int argc, char **argv)
中添加调用:
//lv_demo_widgets();
lv_100ask_calc_simple_test();
执行的界面如下图所示:

网友评论