LVGL模拟器

LVGL的官方代码库中提供基于eclipse配置下载,这里配置了基于win10环境下使用cmake的配置方法,还添加了百问网上的lvgl的仓库。如果需要开发自己的GUI应用,可以在lv_lib_100ask中添加对应的代码,以子模块的方式添加到模拟器中,方便模拟中的应用和实际工程项目保持一致。

编译环境

从下面的链接中下载mingw64,解压后复制到D:\Program Files\mingw64,并复制mingw32-make.exemake.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();

执行的界面如下图所示:


运行界面.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容

  • SDL 获取与安装 直接去官网下载下载示意图根据使用的编译器选择对应的版本,我用的是 mingw,所以选择 SDL...
    wjundong阅读 15,758评论 0 5
  • MSYS2 MSYS2 的前世今生 Cygwin 这一切得从源头说起, 1995年Cygnus的一位工程师Stev...
    wjundong阅读 568评论 0 0
  • 这是2020年10-12月我学习播放器时的记录,在21年5月发在博客上,现在搬到简书 本文讲述如何实现一个播放器主...
    StyxS阅读 982评论 0 0
  • ffmpeg 在linux/mac下编译比较简单,但windows上坑就比较多,网上有很多的文章,但比较杂,有些不...
    海踫子阅读 1,519评论 0 0
  • Mac下 FFmpeg源码编译 安装 可以通过如下三种方式安装ffmpeg 终端安装 (借助homebrew): ...
    孔雨露阅读 14,231评论 1 7