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 即可。
相关推荐
Lhan.zzZ5 小时前
QML 组件库:VS2022 + Qt 静态库方案
开发语言·c++·qt·visual studio
一直C12 小时前
Linux应用软件编程|TCP协议与Socket全套编程(三次握手、四次挥手、报文头部、核心机制)
linux·网络协议·tcp/ip·wireshark·vim·visual studio
_YouziTech_2 天前
VS Code环境下LVGL模拟器的配置与运行
visualstudio·mingw·cmake·lvgl·vs code·模拟器·sdl2
水饺编程4 天前
第5章,[Win32 章节] :Polygon 函数和多边形填充模式
c语言·c++·windows·visual studio
水饺编程5 天前
第5章,[Win32 章节] :绘图模式
c语言·c++·windows·visual studio
典典分享指南6 天前
Windows 自动化踩坑实录
python·intellij-idea·pyqt·emacs·visual studio
水饺编程6 天前
第5章,[Win32 章节] :绘制填充区域
c语言·c++·windows·visual studio
水饺编程6 天前
第5章,[Win32 章节] :创建、选择和删除画笔
c语言·c++·windows·visual studio
江洋之道10 天前
嵌入式LVGL UI架构实践:MVP分层 + 双链表路由,构建低耦合、易维护的嵌入式界面
c语言·架构·嵌入式·lvgl
水饺编程11 天前
第5章,[Win32 章节] :贝塞尔样条曲线(一)
c语言·c++·windows·visual studio