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

2023-10-06 20:59

本文主要是介绍RK3588开发笔记(一):基于方案商提供的宿主机交叉编译Qt5.12.10,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

若该文为原创文章,转载请注明原文出处
本文章博客地址: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

这篇关于RK3588开发笔记(一):基于方案商提供的宿主机交叉编译Qt5.12.10的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/153998

相关文章

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四