Visual Studio 2022 手动搭建 PC 端 lvgl 的调试环境

说明

  • 想手动搭建一个 PC 端 lvgl 的调试环境,基于 Visual Studio 2022

  • LVGL 有个官方的仓库:https://github.com/lvgl/lv_port_pc_visual_studio.git,基本功能已经搭建好了

  • 但是 LVGL 官方的仓库 lv_port_pc_visual_studio 看起来貌似有点复杂,所以想手动搭建一下,了解整个搭建过程

环境准备

  • 社区版版本的 Visual Studio 2022 或者其他 Visual Studio 版本

  • 下载 LVGL lv_port_pc_visual_studio 仓库,作为标准,其实主要是获取 lv_conf.h 、lvgl 初始化与 windows 窗口初始化等,并获取 Visual Studio 编译 LVGL 的一些配置项

  • 使用 git clone lv_port_pc_visual_studio 仓库

c 复制代码
git clone https://github.com/lvgl/lv_port_pc_visual_studio.git --recurse-submodules

工程搭建

第一步:创建工程项目

  • 打开 Visual Studio 2022,【创建新项目】,新建一个 C++ 的空的工程 【空项目】,比如 lvgl_sim_vs


第二步:下载 lvgl

第三步:新建 simulator 目录

  • 在刚刚创建的 Visual Studio 2022 工程目录下,新建一个 simulator 的目录,用于存放 lv_conf.h 、lvgl 初始化与 windows 窗口初始化等文件。

  • 打开 lvgl 的官方的 lv_port_pc_visual_studio 仓库,把

lv_port_pc_visual_studio\LvglWindowsSimulator\lv_conf.h 复制为 lvgl_sim_vs\simulator\lv_conf.h

lv_port_pc_visual_studio\LvglWindowsSimulator\LvglWindowsSimulator.cpp 复制为 lvgl_sim_vs\simulator\simulator.c

第四步:整理工程文件

  • 新建的 Visual Studio 2022 工程 lvgl_sim_vs,在【解决方案资源管理器】中,点击 【显示所有文件】的按钮,然后发现 lvgl 与 simulator 目录已经在工程中显示了。
  • 然后 【解决方案资源管理器】中选择 simulator 目录, 右键点击 【包括在项目中】,添加项目文件到项目中
  • 同上,【解决方案资源管理器】中选择 lvgl 目录下的 src 目录, 右键点击 【包括在项目中】,把 lvglsrc 目录添加到工程中

第五步:设置工程

  • 设置工程的头文件路径:【解决方案资源管理器】中选择工程 lvgl_sim_vs ,右键【属性】,在 【C/C++】的 【附加包含目录】,添加工程的头文件目录 simulator. 目录,注意 . 表示工程的根目录

第六步:工程编译

  • 现在编译工程:【生成解决方案】,会发现有几个编译错误

  • 注释或者移除 lvgl_sim_vs\simulator\simulator.c 中的 #include <LvglWindowsIconResource.h>,也就是暂时不使用程序图标 icon

  • 注释或者移除 lvgl_sim_vs\simulator\simulator.c 如下的图标设置代码

c 复制代码
'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  • 【解决方法】 增加 【宏定义】 _CRT_SECURE_NO_WARNINGS 设置,【解决方案资源管理器】中选择工程 lvgl_sim_vs ,右键【属性】,在 【C/C++】 -> 【预处理器】 -> 【预处理器定义】 中,增加 _CRT_SECURE_NO_WARNINGS
  • 此时编译后,提示找不到 lvgl_sim_vs\simulator\simulator.c 中的 lv_demo_widgets,这是个 lvgl 内置的示例,可以复制 lvgl 中一个简单用例来验证即可。
c 复制代码
无法解析的外部符号 lv_demo_widgets,函数 main 中引用了该符号
  • 【解决方法】复制 lvgl_sim_vs\lvgl\examples\get_started\lv_example_get_started_1.c 中的函数 lv_example_get_started_1lvgl_sim_vs\simulator\simulator.c,然后把 lvgl_sim_vs\simulator\simulator.clv_demo_widgets 改为 lv_example_get_started_1


经过以上的步骤,Visual Studio 2022 手动搭建 PC 端 lvgl 的调试环境,初步搭建完成了。

调试与运行

  • 点击 Visual Studio 2022 调试按钮,即可运行 lvgl 示例

小结

  • 前期可以验证 lvgl 自带的一些示例,也就是把 lvgl\examples 加入到工程中,在 lvgl_sim_vs\simulator\simulator.c 中调用相关示例的 api 即可。
相关推荐
心蓝无敌17 小时前
攻克Avalonia Dock布局中WebView等原生控件无法停靠的难题
c#·visual studio·avalonia·avalonia dock
ZhengEnCi18 小时前
02-VS扩展管理器异常解决指南 💻
visual studio
无限进步_2 天前
【C++】用哈希表封装自己的 unordered_map 和 unordered_set
开发语言·数据结构·c++·算法·哈希算法·散列表·visual studio
水饺编程3 天前
第5章,[Win32 章节] :几种典型的颜色
c语言·c++·windows·visual studio
水饺编程3 天前
编程基础:令牌粘贴指令,【##】
c语言·c++·windows·visual studio
我命由我123453 天前
Visual Studio - Visual Studio 注释快捷键
java·c语言·开发语言·c++·ide·java-ee·visual studio
郝学胜-神的一滴4 天前
Qt 高级开发 005: Qt Creator与Visual Studio 项目双向转换
开发语言·c++·ide·qt·程序人生·visual studio
咩图5 天前
WPF-VisualStudio-C#-Fluent.Ribbon8.0.0学习
c#·wpf·visual studio
丘比特惩罚陆5 天前
制作类似aimlab的测试手速反应力的小游戏
开发语言·javascript·visual studio