RK3568技术笔记十六 QT5开发

背景知

在阅读本章前,如果对下面所列举的知识点有一定的了解,将有助于更好的理解本章内容。

  1. C++基础知识,了解简单的类,继承,重载等面向对象概念;
  2. Linux基础知识,了解基本的Shell命令,懂得对Linux进行简单的配置;
  3. 嵌入式开发基础知识,了解基本的嵌入式开发流程,了解简单的嵌入式开发工具的使用;
  4. 交叉编译与动态库的基础知识。

Qt介绍

Qt

       Qt 是一个跨平台应用程序和 UI 开发框架。使用 Qt只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。Qt原为奇趣科技公司(Trolltech , www.trolltech.com)开发维护,后被nokia公司收购。2012年8月9日,Digia宣布已完成对诺基亚Qt业务及软件技术的全面收购。2014年4月,跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。

Qt/E简介

       Qt/E在原始Qt的基础上,做了许多出色的调整以适合嵌入式环境。同Qt/X11相比,Qt/E很节省内存,因为它不需要X server或是Xlib库,它在底层摒弃了Xlib,采用framebuffer作为底层图形接口。Qt/E的应用程序可以直接写内核帧缓冲,因此它在嵌入式linux系统上的应用非常广泛。

QT应用编译测试

       SAIL-RK3568在编译buildroot文件系统时已编译Qt,Qt版本为qt5.15.2。

       这里以编译QT演示例程analogclock为例进行编译。

       首先需要找到qmake以及analogclock演示例程的路径,先找qmake路径,进入SAIL-RK3568源码编译出的buildroot文件系统路径,如下图所示:

开始找qmake所在目录,执行命令:

$ find . | grep bin/qmake

如下图所示:

用同样的方法查找analogclock,执行命令:

$ find . | grep example | grep analogclock.pro

如下图所示:

       可以看到找到了两个例程,分别在widgets模块下和gui模块下。这里选择编译widgets模块下的analogclock演示例程。

       通过上面的方法找到了qmake和analogclock例程的路径:

qmake

~/dianyu/sail_rk356x_linux_release_v1.3.0_20220620/buildroot/output/rockchip_rk3568/build/qt5base-5.14.2/bin/qmake

analogclock

~/dianyu/sail_rk356x_linux_release_v1.3.0_20220620/buildroot/output/rockchip_rk3568/build/qt5base-5.14.2/examples/widgets/widgets/analogclock/analogclock.pro

进入analogclock例程源码目录下,如下图所示:

       在analogclock例程下执行qmake生成Makefile文件,注意这里的qmake需要指定为SAIL-RK3568开发板所用的qmake,即上面通过命令查找到的qmake,使用绝对路径防止出错,如下图所示:

       执行命令$ make 开始编译,如下图所示:

编译完成后生成analogclock,如下图所示:

将生成的analogclock文件通过U盘或TF卡拷贝到SAIL-RK3568开发板。

U盘默认挂载在/media/udisk0

TF卡默认挂载在/media/sdcard0

本文档使用U盘进行拷贝,执行如下命令:

$ cp /media/udisk0/analogclock /userdata      # 拷贝 analogclock 文件到 /userdata 目录

$ cd /userdata/                                               # 进入 /userdata 目录

$ chmod +x analogclock                                 # 给 analogclock 可执行权限

$ ./analogclock                                               # 运行 analogclock 程序

运行成功,如下图所示:

屏幕显示如下图所示:

至此,完成Qt演示例程的编译及运行。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普通变频器位置闭环控制(S7-1200PLC工艺对象模拟量轴)

1、S7-1200PLC控制V90总线伺服通过工艺对象实现定位控制 S7-1200PLC和V90总线伺服通过工艺对象实现定位控制(标准报文3应用)_1200报文3控制v90-CSDN博客文章浏览阅读182次。V90伺服驱动器调试软件SINAMICS V-ASSISTANT Commissioning tool下载地址如下:西门子官网选型|资料CS…

开启文物保护新篇章——智能RFID文物藏品库房管理系统

在历史的长河中,文物不仅是见证文明的瑰宝,更是文化传承的重要载体。这些承载着丰富历史和文化价值的珍贵文物,需要得到科学、精细的保护和管理。为了更好地守护和传承我们的文化遗产,我们荣幸地推出智能RFID文物藏品库房管理系统…

搜维尔科技:力反馈主手—手术机器人应用〈腔镜手术机器人平台—进入手术室动物实验〉

力反馈主手—手术机器人应用〈腔镜手术机器人平台—进入手术室动物实验〉 搜维尔科技:力反馈主手—手术机器人应用〈腔镜手术机器人平台—进入手术室动物实验〉

Python武器库开发-武器库篇之Redis未授权漏洞一键Getshell(五十八)

Python武器库开发-武器库篇之Redis未授权漏洞一键Getshell(五十八) Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进⾏采⽤相关的策略,⽐如添加防⽕墙规则避免其他⾮信任来源 ip 访问等,这样将会将 Redis 服务暴露到公⽹上&a…

【自动驾驶】运动底盘状态数据:里程计、IMU、运动学分析、串口通信协议

文章目录 控制器与运动底盘状态数据:里程计、IMU运动学分析与轮子运动学分析公式串口通信控制与反馈通讯协议串口通信反馈上行数据帧解析串口通信控制下行数据帧解析代码实现IMU、里程计数据的获取、解析、计算控制器与运动底盘状态数据:里程计、IMU 控制器需要负责外发底盘…

Matplotlib绘制一个X轴2个Y轴的图表

import matplotlib matplotlib.use(Agg) # 使用Agg后端,这个后端适用于生成图像文件但不显示它们 import matplotlib.pyplot as plt fig plt.figure(figsize(15, 8))# 字体使用楷体 matplotlib.rc("font", family"Microsoft YaHei") ax1 fig…

整合第三方技术-整合JUnit

黑马程序员Spring Boot2 文章目录 名称:SpringBootTest类型:测试类注解位置:测试类定义上方作用:设置JUnit加载的SpringBoot启动类范例:

短视频外卖服务商怎么做?快速通道及申请条件解析

近日,某音官方于某音电商学习中心发布了关于新增《【到家外卖】内容服务商开放准入公告》的意见征集通知(以下简称“通知”),宣布了某音外卖即将正式开放的消息。随后,以某音外卖服务商怎么做为代表的相关问题也在多个…

定义和反射Annotation类(注解)

文章目录 前言一、定义Annotation类二、反射Anootation类 1.元注解2.反射注解总结 前言 在写代码的过程中,我们经常会写到注释,以此来提醒代码中的点。但是,这些注释不会被查看,也不在整个代码之中,只能在源代码中进行…

适合PbootCMS的阿里云短信发送类

前言介绍 一款大佬分享的简单方便阿里云短信封装代码&#xff0c;不用官网复杂的SDK&#xff0c;快速上手。 现在我把它适配成pbootcms&#xff0c;可以拿来快速制作短信发送功能。 封装代码 <?php /*** author CMS88* 阿里云SMS*/ namespace core\sms; use core\basi…

【maya逼真人物】灯光布置与调节

初始设置&#xff1a; 首先创建了一个Sky Dome Light&#xff08;天空穹顶灯&#xff09;&#xff0c;并使用HDRI贴图来提供基本环境光照。作者选择了一个包含天空和地面的HDRI图像&#xff0c;为场景提供初始照明。主光源&#xff08;Key Light&#xff09;&#xff1a; 创建了…

Mistral AI最新力作——Mistral Large媲美GPT-4

Mistral AI自豪地宣布&#xff0c;他们的最新力作——Mistral Large&#xff0c;已经正式面世。这款尖端的文本生成模型不仅在多语言理解上表现出色&#xff0c;更在推理能力上达到了顶级水平。Mistral Large能够处理包括文本理解、转换和代码生成在内的复杂多语言推理任务。 M…

36 - shell之sed

sed grep就是查找文本当中的内容&#xff0c;扩展正则表达式。 一、sed 1.1、sed的定义 sed是一种流编辑器&#xff0c;一次处理一行内容。 如果只是展示&#xff0c;会放在缓冲区&#xff08;模式空间&#xff09;&#xff0c;展示结束&#xff0c;会从模式空间把结果删除…

【LeetCode刷题】6. Z 字形变换

1. 题目链接2. 题目描述3. 解题方法4. 代码 1. 题目链接 6. Z 字形变换 2. 题目描述 3. 解题方法 假设一串字符串"abcdefghijklmnopqrstuvwx", 会有如下排列&#xff1a; 我们再以下标来看看排列 从下标来看&#xff0c;每个下标是有规律的 每一行的下标之间的差…

Java基础 - 练习(五)根据今天日期获取一周内的日期(基姆拉尔森公式)

基姆拉尔森计算公式用于计算一周内的日期。比如给你年月日&#xff0c;从而计算今天是星期几。 基姆拉尔森公式 Week (d2*m3*(m1)/5yy/4-y/100y/4001) mod 7&#xff0c; 3<m<14Week的取值范围是0 ~ 6&#xff0c;其中0代表星期日&#xff0c;1 ~ 6分别代表星期一到星期…

【ai】tx2-nx 开通samba

ubutn服务器加入了samba给jetson也加入一个samba 添加root用户 密码与nvidia一样 添加nvidia 到suoders中并添加samba账号 nvidia@tx2-nx:~$ nvidia@tx2-nx:~$ nvidia@tx2-nx:~$ nvidia@tx2-nx:~$ sudo vi /etc/sudoers nvidia@tx2-nx:~$ sudo chm

【第24章】Vue实战篇之用户信息展示

文章目录 前言一、准备1. 获取用户信息2. 存储用户信息3. 加载用户信息 二、用户信息1.昵称2.头像 三、展示总结 前言 这里我们来展示用户昵称和头像。 一、准备 1. 获取用户信息 export const userInfoService ()>{return request.get(/user/info) }2. 存储用户信息 i…

使用Python selenium爬虫领英数据,并进行AI岗位数据挖掘

随着OpenAI大火&#xff0c;从事AI开发的人趋之若鹜&#xff0c;这次使用Python selenium抓取了领英上几万条岗位薪资数据&#xff0c;并使用Pandas、matplotlib、seaborn等库进行可视化探索分析。 但领英设置了一些反爬措施&#xff0c;对IP进行限制封禁&#xff0c;因此会用到…

JavaWeb阶段学习知识点(二)

登录校验和JWT令牌实现 JWT使用方式 创建一个springboot项目,pom.xml引入jwt依赖 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency><!-- 针对jdk17或…

每月 GitHub 探索|10 款引领科技趋势的开源项目

1.IT-Tools 仓库名称&#xff1a; CorentinTh/it-tools 截止发稿星数: 16842 (近一个月新增:5744) 仓库语言: Vue 仓库开源协议&#xff1a; GNU General Public License v3.0 引言 CorentinTh/it-tools 是一个开源项目&#xff0c;提供各种对开发者友好的在线工具&#xff0…