最新Ubuntu LVGL SDL模拟器安装

前言

本文主要说明Ubuntu 23.4安装LVGL 9.0以及基于SDL的模拟环境。

代码下载

访问lv_port_pc_eclipse可以看到相信信息,官方已经打包好了整个代码环境。

安装CMAKE。

sudo apt install cmake

安装SDL。

sudo apt-get update && sudo apt-get install -y build-essential libsdl2-dev

安装LVGL,因为我们下载的是lv_port_pc_eclipse仓库,所以加上recursive参数会把lvgl也一起下载下来。

git clone --recursive https://github.com/lvgl/lv_port_pc_eclipse.git

下载完成后是这样的目录结构。

name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse$ ls
CMakeLists.txt  Dockerfile   lv_conf.h  main.c    mouse_cursor_icon.c    pc_simulator.launch
confdef.txt     licence.txt  lvgl       Makefile  mouse_cursor_icon.png  README.md

编译

在lv_port_pc_eclipse目录中,创建编译文件夹build,然后执行cmake生成makefile文件。

name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse$ mkdir build
name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse/build$ cd build/
name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse/build$ cmake .. .

log如下。

name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse/build$ cmake .. .
CMake Warning:
  Ignoring extra path from command line:

   "."


-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/anruliu/workspace/lv_port_pc_eclipse/build

最后执行make -j即可。

name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse/build$ make -j

编译完成后,可执行文件在上一层目录的bin/main,执行即可看到程序运行。

name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse/bin$ ./main

在这里插入图片描述
在这里插入图片描述

当然还有很多的demo程序可以运行测试,添加入口函数即可。

name@name-HP-Pavilion-g6-Notebook-PC:~/workspace/lv_port_pc_eclipse$ git diff .
diff --git a/main.c b/main.c
index ed24d8b..a8d993a 100644
--- a/main.c
+++ b/main.c
@@ -76,6 +76,9 @@ int main(int argc, char **argv)
   hal_init(800, 480);
 
   lv_demo_widgets();
+  //lv_demo_music();
+  //lv_demo_benchmark(LV_DEMO_BENCHMARK_MODE_RENDER_AND_DRIVER);
+  /lv_demo_flex_layout();
 
   while(1) {
       /* Periodically call the lv_task handler.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/72269.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

③ vue组件

vue组件创建 在App.vue中添加。 技巧:先import,把vue组件地址写出来。然后在template中写名字。剩下的就自动生成。要看下import有没有多生成什么。 注意1: 注意2: 不只是能在App.vue中引入组件。任意组件中都可以引用其他组件…

SpringBoot Thymeleaf模板引擎

Thymeleaf 模板引擎 前端交给我们的页面,是html页面。如果是我们以前开发,我们需要把他们转成jsp页面,jsp好处就是当我们查出一些数据转发到JSP页面以后,我们可以用jsp轻松实现数据的显示,及交互等。 jsp支持非常强大…

django处理分页

当数据库量比较大的时候一定要分页查询的 在django中操作数据库进行分页 queryset models.PrettyNum.objects.all() #查询所有 queryset models.PrettyNum.objects.all()[0:10] #查询出1-10列 queryset models.PrettyNum.objects.filter(mobile__contains136)[0:10] …

关于selenium 元素定位的浅度解析

一、By类单一属性定位 元素名称 描述 Webdriver API id id属性 driver.find_element(By.ID, "id属性值") name name属性 driver.find_element(By.NAME, "name属性值") class_name class属性 driver.find_element(By.CLASS_NAME, "class_na…

npm 报错 cb() never called!

不知道有没有跟我一样的情况,在使用npm i的时候一直报错:cb() never called! 换了很多个node版本,还是不行,无法解决这个问题 百度也只是让降低node版本请缓存,gpt给出的解决方案也是同样的 但是缓存清过很多次了&a…

虹科方案 | 汽车总线协议转换解决方案

汽车总线: 汽车总线是一种用于在车辆电子系统中传输数据和控制信息的通信系统。它允许不同的电子控制单元(ECU)在车辆中相互通信,协调各个系统的操作,以实现功能的集成和协同工作。 在现代汽车中,综合通信…

计网第一章

注意:计网知识点十分多,在本篇及后续博客主要记录个人认为比较重要的知识点。 1.计算机网络的基本概念 计算机网络就是自治的计算机互连起来的集合。计算机网络可以简称为网络,而互连网就是把许多网络连接起来,即网络的网络。 …

拆解与重构:慕云游首页组件化设计

目录 前言1 项目准备1.1 创建项目目录1.2 搭建项目开发环境 2 项目组件化2.1 在当前环境启动原有项目2.2 顶部组件2.3 幻灯片组件2.4 机酒自由行组件2.5 拆分余下的css文件 3 项目完善3.1 幻灯片组件3.1.1 结构和样式3.1.2 功能实现3.1.3 使用Ajax获取数据3.1.4 加载中组件 3.2…

0基础学习VR全景平台篇 第81篇:全景相机-临云镜如何直播推流

临云镜全景相机是阿里巴巴定制全景设备,实现空间三维信息的快速采集,与阿里云三维空间重建平台搭配,帮助品牌商与平台以较低的成本完成空间的快速采集,并支持对室内/室外空间的三维全景展示及空间漫游,同时支持VR浏览、…

适配器模式-java实现

意图 复用已经存在的接口,与所需接口不一致的类。即将一个类(通常是旧系统中的功能类),通过适配器转化成另一个接口的实现。(简单来说,就是复用旧系统的功能,去实现新的接口) 我们举…

【MFC】05.MFC六大机制:程序启动机制-笔记

MFC程序开发所谓是非常简单,但是对于我们逆向人员来说,如果想要逆向MFC程序,那么我们就必须了解它背后的机制,这样我们才能够清晰地逆向出MFC程序,今天这篇文章就来带领大家了解MFC的第一大机制:程序启动机…

datax抽取库名带点的表遇到的问题

一、描述任务 使用Datax抽取mysql中的数据到hive的wedw_ods层中,mysql的库名为:b.p.n.p 表名为:bene_group 二、datax.json脚本生成 因为datax的脚本是自动生成的,生成的格式如下: {"core": {},"jo…

链表OJ详解

💕人生不满百,常怀千岁忧💕 作者:Mylvzi 文章主要内容:链表oj详解 题目一:移除元素 题目要求: 画图分析: 代码实现: struct ListNode* removeElements(struct List…

mysql数据库如何转移到oracle

mysql数据库转移到oracle 在研发过程中,可能会用到将表数据库中的表结构及数据迁移到另外一种数据库中, 比如说从mysql中迁移到oracle中, 常用的方法有好些,如下 1、使用powerdesigner,先连接mysql然后生成mysql的p…

【工作中问题解决实践 十一】Kafka消费者消费堆积且频繁rebalance

最近有点不走运,老是遇到基础服务的问题,还是记着点儿解决方法,以后再遇到快速解决吧,今天遇到这个问题倒不算紧急,但也能通过这个问题熟悉一下Kafka的配置。 问题背景 正在开会的时候突然收到一连串的报警&#xff…

Three.js 实现材质边缘通道发光效果

相关API的使用: 1. EffectComposer(渲染后处理的通用框架,用于将多个渲染通道(pass)组合在一起创建特定的视觉效果) 2. RenderPass(是用于渲染场景的通道。它将场景和相机作为输入,使用Three.…

Javascript异步编程的4种方法

你可能知道,Javascript语言的执行环境是"单线程"(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一…

4.深入对象

4.1创建对象三种方式 1.利用对象字面量创建对象 const obj{ name : 佩奇 }2.利用new 0bject创建对象 const obj new Object({ name: 佩奇 }) console.log(obj) // {name: 佩奇}3.利用构造函数创建对象 4.2构造函数 构造函数:是一种特殊的函数,主要用来初始化…

关于memset的小实验

关于memset的小实验 memset是包含在<string.h>的函数&#xff0c;用来给字符数组赋值。然而人们常常把它拿来给整型变量赋值。 void *MEMSET (void *dstpp, int c, size_t len)memset是一个返回通用指针的函数&#xff0c;返回的地址便是输入的地址 int c表示对这块内…

时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 1.Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 2.单变量时间序列预测; 3.多指标评价,评价指标包括:R2、MAE、MBE等,代码质量极高…