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 即可。
相关推荐
2601_961845157 小时前
专升本资料哪个好|教材+真题+网课对比推荐PDF
考研·http·微服务·容器·visual studio
郝亚军8 小时前
Visual Studio 2022项目中的.sln是什么?
c++·c#·visual studio
专注VB编程开发20年1 天前
阿里通义灵码插件安装失败
开发语言·ide·c#·visual studio
专注VB编程开发20年3 天前
开发VS2026插件最佳方案:老式VSIX EnvDTE
ide·c#·visual studio
专注VB编程开发20年3 天前
VS2026最新ide插件VisualStudio.Extensibility进程外 OOP 新模型
ide·c#·visual studio
专注VB编程开发20年3 天前
VisualStudio.Extensibility跨进程插件是防卡死IDE?
ide·visual studio
XBodhi.4 天前
Visual Studio C++ 语法错误: 缺少“;”(在“return”的前面)
开发语言·c++·visual studio
我不是懒洋洋6 天前
【C++】内存管理与模板(C++内存管理方式、new和delete的实现原理、malloc/free和new/delete的区别、函数模板、类模板)
c语言·开发语言·c++·青少年编程·visual studio
jingshaoqi_ccc7 天前
windows 10系统下QT的安装及在Visual studio中的扩展安装
windows·qt·visual studio