RK3568技术笔记十六 QT5开发

news2024/12/27 14:08:25

背景知

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

  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.coloradmin.cn/o/1846424.html

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

相关文章

谷歌Chrome浏览器排查js内存溢出

1. 打开谷歌浏览器检查台 2. 点击memory 3. 点击开始快照录制,时隔一会儿录一次,多录几次 4. 进行快照对比

TMS与WMS海外仓系统:两者分别是什么、区别、结合使用的好处

TMS国际物流系统和WMS海外仓系统都旨在提升海外仓储物流作业的效率,不过他们在供应链中却各自发挥着不同的作用。 今天我们会深入的给大家介绍两者分别是什么,区别在哪,结合使用TMS国际物流系统和WMS海外仓系统的好处是什么。 1、了解WMS海…

AI+前端技术的结合(实现图片识别功能)

随着人工智能技术的不断发展,AI在前端设计页面中的应用变得越来越普遍。比如:在电商平台上,可以利用对象检测技术实现商品的自动识别和分类;人脸识别;车辆检测;图片识别等等......其中一个显著的应用是在图…

爆火的AI姓名头像号篇篇10w+, 流量主赚麻了...

最近二师兄在刷公众号时,看到一个非常有趣的账号。简单又“暴li”。 几乎篇篇10w。点击去一看,内容也是非常极简,利用姓氏生成头像。一个字都不多。 几乎每篇文末都有广告,一篇10w按照800来算, 一个月大概 ~~一七得七、…

【SPIE出版】第六届无线通信与智能电网国际会议(ICWCSG 2024,7月26-28)

随着科技的飞速发展和能源需求的日益增长,智能电网技术逐渐成为电力行业的重要发展方向。与此同时,无线通信技术在近年来也取得了显著的进步,为智能电网的发展提供了强有力的支持。为了进一步推动无线通信与智能电网的结合与发展,…

手机拍照如此强,还有买相机的理由么?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 场地支持 / 声湃轩北京录音间 我们见证了关于摄影工具的世纪之争。 尽管手机摄影技术飞速发展,但传统相机的忠实拥趸们认为…

Flink入门实战详解

Flink入门实战 Flink项目构建 1)基于MavenIdea创建项目&#xff1a; 使用maven进行项目构建&#xff0c;如图1所示。 图-34 构建maven项目 输入项目中的maven的坐标和存储坐标&#xff0c;如图2所示。 图2 maven坐标和存储位置 2)Maven依赖&#xff1a; <properties>…

BEVM基于OP-Stack发布首个以WBTC为GAS连接以太坊和比特币生态的中继链

为了更好的连接以太坊和比特币生态&#xff0c;BEVM团队正在基于OPtimism的OP Stack来构建一个以WBTC为GAS兼容OP-Rollup的中继链&#xff0c;这条中继链将作为一种完全去中心化的中间层&#xff0c;把以太坊上的主流资产(WBTC/ ETH/USDC/USDT等)引入到BEVM网络。 不仅如此&am…

最新扣子(Coze)实战案例:扣子卡片的制作及使用,完全免费教程

&#x1f9d9;‍♂️ 大家好&#xff0c;我是斜杠君&#xff0c;手把手教你搭建扣子AI应用。 &#x1f4dc; 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》&#xff0c;完全免费学习。 &#x1f440; 关注斜杠君&#xff0c;可获取完整版教程。&#x1f44d;&#x1f3f…

Element-UI实现el-dialog弹框拖拽功能

在实际开发中&#xff0c;会发现有些系统&#xff0c;弹框是可以在浏览器的可见区域自由拖拽的&#xff0c;这极大方便用户的操作。但在查看Element-UI中弹框&#xff08;el-dialog&#xff09;组件的文档时&#xff0c;发现并未实现这一功能。不过也无须担心&#xff0c;vue中…

GaussDB关键技术原理:高性能(一)

引言 对数据库性能进行优化是令人激动的&#xff0c;无论是对其进行性能需求分析、性能需求设计、性能问题定个位都是富于变化又充满挑战的工作&#xff0c;本章围绕“数据库性能”进行全面系统化的介绍&#xff0c;首先从数据库在现代软件栈中所处的位置出发&#xff0c;介绍…

车载模块负载基础认识

车载模块负载是指车辆上的各种电子设备和系统&#xff0c;如导航系统、音响系统、空调系统、安全气囊等。这些设备和系统在车辆运行过程中需要消耗一定的电能&#xff0c;以保证其正常工作。车载模块负载的基础认识主要包括以下几个方面&#xff1a; 1. 负载类型&#xff1a;车…

计算机毕业设计Python+Spark音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 音乐大数据 大数据毕业设计 大数据毕设

2023届本科生毕业论文&#xff08;设计&#xff09;开题报告 知识图谱音乐推荐系统 学 院&#xff1a; XXX 专 业&#xff1a; XXX 年 级 班 级&#xff1a; XXX 学 生 姓 名&#xff1a; XXX 指 导 教 师&#xff1a; XXX 协助指导教师&#xff1a; …

收藏丨世界地形图(超高清)

原文链接https://mp.weixin.qq.com/s?__bizMzUyNzczMTI4Mg&mid2247668146&idx2&snbebd2f4921994ab05ed47efdebe8e706&chksmfa770e8fcd008799bf1d1cabd62edca7f60a5c7a1ef9c0bacf3bdc102bccf0f12d54d6c07c49&token1405091246&langzh_CN&scene21#we…

[信号与系统]模拟域中的一阶低通滤波器和二阶滤波器

前言 不是学电子出身的&#xff0c;这里很多东西是问了朋友… 模拟域中的一阶低通滤波器传递函数 模拟域中的一阶低通滤波器的传递函数可以表示为&#xff1a; H ( s ) 1 s ω c H(s) \frac{1}{s \omega_c} H(s)sωc​1​ 这是因为一阶低通滤波器的设计目标是允许低频信…

Java 中 String 类

目录 1 常用方法 1.1 字符串构造 1.2 字符串包含的成员 1.3 String 对象的比较 1.4 字符串查找 1.5 转化 1.5.1 数值和字符串转化 1.5.2 大小写转化 1.5.3 字符串转数组 1.5.4 格式化 1.6 字符串替换 1.7 字符串拆分 1.8 字符串截取 1.9 其他操作方法 1.10 字符…

智慧办公新篇章:可视化技术引领园区管理革命

随着科技的飞速发展&#xff0c;办公方式也在经历着前所未有的变革。在这个信息爆炸的时代&#xff0c;如何高效、智能地管理办公空间&#xff0c;成为了每个企业和园区管理者面临的重要课题。 智慧办公园区作为未来办公的新趋势&#xff0c;以其高效、便捷、智能的特点&#x…

面向对象修炼手册(一)(类与对象)(Java宝典)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;面向对象修炼手册 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 思想 代理和团体 类 1 基本概…

设施布置之车间布局优化SLP分析

一 物流分析&#xff08;Flow Analysis&#xff09; 的基本方法 1、当物料移动是工艺过程的主要部分时&#xff0c;物流分析就是工厂布置设计的核心工作&#xff0c;也是物料搬运分析的开始。 2、零部件物流是该部件在工厂内移动时所走过的路线&#xff0c; 物流分析不仅要考虑…

鸿蒙开发通信与连接:【@ohos.wifi (WLAN)】

WLAN 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import wifi from ohos.wifi;wifi.isWifiActive isWifiActive(): boolean 查询WLAN是否已激活。 需要权限&#xff1a; ohos.p…