RK3588开发笔记(一):基于方案商提供的宿主机交叉编译Qt5.12.10

news2025/1/20 13:19:21

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133618273

红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

瑞芯微开发专栏

上一篇:没有了
下一篇:敬请期待…


前言

  rk3588开发车机,方案上提供的宿主机只是编译rk sdk的版本,并未编译好Qt,那么需要自行交叉编译Qt系统。选择的Qt的版本为5.12.10。


宿主机准备

  下载并打开宿主机,只有sdk,并没有交叉编译的Qt。
  在这里插入图片描述


Qt准备

  下载Qt5.12.10的开源软件(方案商提供)。
  在这里插入图片描述


交叉编译工具准备

  下载提供的交叉编译工具链(方案商提供)。
  在这里插入图片描述


编译sysroot文件系统准备

  下载编译依赖的目标编译系统(方案商提供)
  在这里插入图片描述


开始交叉编译Qt

步骤一:解压编译工具链

cd ~/tool
tar xvf aarch64-rockchip1031-linux-gnu.tar.gz

  在这里插入图片描述

  发现单独提供的tool没有bin下的g++工具,于是只好对比一下,发现开发板给过来是一样的,有bin:
  在这里插入图片描述

  于是copy过去,直接使用sdk的tool了:
  在这里插入图片描述

  在这里插入图片描述

步骤二:配置好系统环境,引入交叉编译工具

  建立一个env.sh脚本:
  在这里插入图片描述

#!/bin/sh
export PATH=$PATH:/home/ht/work/tool/toolchain/bin

  使用路径:

source env.sh

  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述

  发现与方案上给过来的平台不匹配,但是都是连接到同一个目标了,先直接干试一试。
  在这里插入图片描述

步骤三:解压sysroot

  在编译过程中,基本是不会依赖编译目标系统得库,所以一般都无需配置sysroot,如果依赖,比如编译支持ffmpeg的opencv则依赖交叉编译系统已经编译完的ffmpeg,则讲ffmpeg放入sysroot,也可以直接单独引入额外的库,方式很多,不深究。
  在这里插入图片描述

步骤四:解压qt源码

cd ~/work/src
tar xvf qt-everywhere-src-5.12.10.tar.xz

  在这里插入图片描述

  在这里插入图片描述

步骤五:配置Qt

  修改平台配置文件:

cd /home/ht/work/src/qt-everywhere-src-5.12.10/qtbase/mkspecs/linux-aarch64-gnu-g++
gedit qmake.conf

  修改编译器的名称:
  在这里插入图片描述

  然后配置(这里使用平台配置,则需要定位平台配置文件,还有一种方式直接替换交叉编译器的前缀,但此处不是):
  这里建立个文件,方便调试,切换到qt的源码文件夹:
  在这里插入图片描述

   在这里插入图片描述

#!/bin/bash
./configure \
  -prefix /home/ht/work/build-qt5.12.10 \
  -sysroot /home/ht/work/sysroot \
  -confirm-license \
  -opensource \
  -release \
  -make libs \
  -xplatform linux-aarch64-gnu-g++ \
  -no-opengl \
  -no-feature-completer \
  -verbose

  然后配置:

chmod +x mk.sh
./mk.sh

  在这里插入图片描述
  这里有一次入坑编译失败,是路径用户设置为yang,实际为ht,所以root路径找不到的导致的:
  在这里插入图片描述

  Ht为用户,/home/ht/xxx配置成功了:
  在这里插入图片描述

步骤六:编译Qt

  先使用多线程:

make -j8

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

  再跑一次单make。(会出现各种各样的错误,同样的虚拟机同样的代码也会有不同的错误,遇到问题的时候,首先尝试解决,解决不了想办法绕过去,如果真的遇到兼容性问题,就不是一下能解决的,所以一般都是提供编译好的虚拟机了)。

make

  在这里插入图片描述

步骤七:安装Qt

make install

上一篇:没有了
下一篇:敬请期待…


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133618273

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

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

相关文章

最强中间件!Kafka快速入门(Kafka理论+SpringBoot集成Kafka实践)

自媒体文章上下架 需求分析 媒体端下架文章同时app端也下架文章的实现可以通过feign去调用,但这种实现耦合度太高,这里使用MQ进行解耦 自媒体端一旦上下架文章就发送消息给MQ,文章微服务在去读取消息根据消息内容上下架文章 MQ还可以流量削…

SSM - Springboot - MyBatis-Plus 全栈体系(二十二)

第四章 SpringMVC 五、SpringMVC 其他扩展 1. 全局异常处理机制 1.1 异常处理两种方式 开发过程中是不可避免地会出现各种异常情况的,例如网络连接异常、数据格式异常、空指针异常等等。异常的出现可能导致程序的运行出现问题,甚至直接导致程序崩溃。…

嵌入式学习笔记(47)Nand的常见操作及流程分析

9.3.1坏块检查 (1)Flash使用之前一定要先统一擦除(擦除的单元是块)。Flash类设备擦除后里边全是1,所以擦干净之后读出来的值是0xFF (2)检查坏块的思路就是:先擦除,然后将整个块读出来,依次检测各字节是否…

【Java项目推荐之黑马头条】CSDN中的定时发布知道吧,你项目中的定时发布是如何实现的?

延迟队列精准发布文章 文章定时发布 延迟任务概述 什么是延迟任务 定时任务:有固定周期的,有明确的触发时间延迟队列:没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事…

起号1个月后,我分析了一些AI数字人项目的红利期和优缺点

本期是赤辰第33期AI项目教程,底部准备了9月粉丝福利,可以免费领取。hi,同学们,AI的应用在各场景都已经呈井喷态势,好比就连近期的杭州亚运会开幕式都采用了数字人火炬手,AI技术的发展不断刷新着我们的脑洞上…

数据科学家的编程语言

数据科学家的编程语言 在今天有256种编程语言可供选择,选择要学习的语言可能会令人不知所措和困难。有些语言更适用于构建游戏,而有些更适用于软件工程,还有一些更适用于数据科学。 编程语言的类型 低级编程语言是计算机用来执行操作的最容…

Spring-事务管理-加强

目录 开启事务 编程式事务 声明式事务 声明式事务的优点 声明式事务的粒度问题 声明式事务用不对容易失效 Spring事务失效可能是哪些原因 Transactional(rollbackFor Exception.class)注解 Spring 事务的实现原理 事务传播机制 介绍 用法 rollbackFor 场景举例 …

Python爬取wallhaven的所有4k壁纸图片

目录 一、前端结构 二、代码 一、前端结构 为get请求,携带参数如下: 随page参数变化网页变化 需要在整张页面中进入: //section[class"thumb-listing-page"]//li/figure/a/href 进入后获取图片src: //section[class"fit"]/div[class"s…

Hadoop伪分布式环境搭建

什么是Hadoop伪分布式集群? Hadoop 伪分布式集群是一种在单个节点上模拟分布式环境的配置,用于学习、开发和测试 Hadoop 的功能和特性。它提供了一个简化的方式来体验和熟悉 Hadoop 的各个组件,而无需配置和管理一个真正的多节点集群。 在 Ha…

国庆作业 day 1

服务器 #include<myhead.h>//消息结构体 typedef struct {long msgtype; //消息类型char data[1024]; //消息正文 }Msg_ds;#define SIZE sizeof(Msg_ds)-sizeof(long) //正文大小 int main(int argc, const char *argv[]) {//1、创建key值key_t key;…

Spring 作用域解析器AnnotationScopeMetadataResolver

博主介绍&#xff1a;✌全网粉丝近5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经…

Java项目防止SQL注入的几种方案

目录 一、什么是SQL注入&#xff1f; 二、Java项目防止SQL注入方式 1、PreparedStatement防止SQL注入 2、mybatis中#{}防止SQL注入 3、对请求参数的敏感词汇进行过滤 4、nginx反向代理防止SQL注入 一、什么是SQL注入&#xff1f; SQL注入即是指web应用程序对用户输入数…

Latent Diffusion Models 论文解读

论文下载地址&#xff1a;https://arxiv.org/pdf/2112.10752.pdf 0 摘要 通过将图像形成过程分解为去噪自编码器的连续应用&#xff0c;扩散模型&#xff08;DM&#xff09;在图像数据及其他方面取得了最先进的合成结果。此外&#xff0c;它们的表述允许一种指导机制来控制图…

HP 喷墨一体机 - “检查墨盒“指示灯闪烁,怎么办?

适用机型&#xff1a; HP PSC 1118、1218 、1318、1350、1406/1408、1508 故障现象&#xff1a; “检查墨盒”指示灯闪烁&#xff0c;“份数”显示的是英文字母“E”&#xff0c;代表 Error&#xff08;错误&#xff09;的意思。&#xff08;无复印份数显示 &#xff09; “检…

想升级macOS Big Sur,但是MacBook内存空间不够该怎么办?

随着使用时间的增长&#xff0c;我们会发现Mac电脑的存储空间越来越少&#xff0c;这时候我们就需要对Mac电脑进行清理&#xff0c;以释放更多的存储空间。那么&#xff0c;Mac空间不足怎么解决呢&#xff1f; 1.清理垃圾文件 Mac空间不足怎么解决&#xff1f;首先要做的就是清…

利用fitnesse实现api接口自动化测试

上午在园子里乱逛&#xff0c;看了不少小伙伴们分享的接口测试方面的知识&#xff0c;仔细想想&#xff0c;我做接口测试也有几个年头了&#xff0c;大家所叙述到的一些经验或多或少&#xff0c;我也曾遇到过&#xff0c;突然意识到知识的点滴积累是多么的重要&#xff0c;我记…

SRTP交叉编译与移植

1 SRTP源码下载 源码下载在github采用的库为libsrtp2.5.0: weget https://github.com/cisco/libsrtp/archive/refs/tags/v2.5.0.tar.gz2 SRTP交叉编译 新增交叉编译脚本&#xff0c;这里需要支持openssl。 ./configure --hostarm-linux-androideabi --prefix$(pwd)/object …

基于python的GUI设计

GUI设计是编程应用的一个重要载体&#xff0c;是软件开发实现的重要步骤&#xff0c;需要重要掌握&#xff0c;不管是C、JAVA、python、matlab等编程语言&#xff0c;都需要GUI界面设计来实验软件开发的前期工作&#xff0c;同时也方便按钮操作。 在设计GUI的过程中&#xff0…

ZRTP协议与原理

1 ZRTP简介 ZRTP&#xff0c;全名Z Real-time Transport Protocol&#xff0c;是一种网络协议&#xff0c;旨在为实时通信提供安全性。与其它安全协议&#xff08;如TLS和IPsec&#xff09;不同&#xff0c;ZRTP专门为实时通信设计&#xff0c;包括音频和视频通话。它是由Phil…

竞赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的数学公式识别算法实现 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学…