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

前言

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

宿主机准备

下载并打开宿主机,只有sdk,并没有交叉编译的Qt。   

Qt准备

下载Qt5.12.10的开源软件(方案商提供)。   

交叉编译工具准备

下载提供的交叉编译工具链(方案商提供)。   

编译sysroot文件系统准备

下载编译依赖的目标编译系统(方案商提供)   

开始交叉编译Qt

步骤一:解压编译工具链

shell 复制代码
cd ~/tool
tar xvf aarch64-rockchip1031-linux-gnu.tar.gz

发现单独提供的tool没有bin下的g++工具,于是只好对比一下,发现开发板给过来是一样的,有bin:   

于是copy过去,直接使用sdk的tool了:   

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

建立一个env.sh脚本:   

shell 复制代码
#!/bin/sh
export PATH=$PATH:/home/ht/work/tool/toolchain/bin

使用路径:

shell 复制代码
source env.sh

发现与方案上给过来的平台不匹配,但是都是连接到同一个目标了,先直接干试一试。   

步骤三:解压sysroot

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

步骤四:解压qt源码

shell 复制代码
cd ~/work/src
tar xvf qt-everywhere-src-5.12.10.tar.xz

步骤五:配置Qt

修改平台配置文件:

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

修改编译器的名称:   

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

shell 复制代码
#!/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

然后配置:

shell 复制代码
chmod +x mk.sh
./mk.sh

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

Ht为用户,/home/ht/xxx配置成功了:   

步骤六:编译Qt

先使用多线程:

shell 复制代码
make -j8

  

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

shell 复制代码
make

步骤七:安装Qt

shell 复制代码
make install
相关推荐
回家路上绕了弯4 小时前
Git worktree 终极指南:告别分支切换烦恼,实现多分支并行开发
git·后端
@atweiwei4 小时前
用 Rust 构建agent的 LLM 应用的高性能框架
开发语言·后端·rust·langchain·eclipse·llm·agent
skilllite作者4 小时前
Spec + Task 作为「开发协议层」:Rust 大模型辅助的标准化、harness 化与可回滚
开发语言·人工智能·后端·安全·架构·rust·rust沙箱
懒得起名_yyf4 小时前
Http---详细格式介绍
后端
程序员cxuan4 小时前
今天看到很多人讨论 Linux 终于要接受 AI 提交的代码了,我的第一反应是,真的吗?作为喷 AI 最狠的祖师爷到底咋看这件事儿?
后端·程序员
何陋轩4 小时前
GitHub Copilot深度使用指南:手把手教你在IDEA中榨干AI生产力
人工智能·后端
fish20264 小时前
车载日志限流稽查系统
后端
云边有个稻草人4 小时前
NFS 环境 KES 安装 Operation not permitted 报错排查 + 最佳实践
后端
程序员小崔日记5 小时前
技术之外,皆是人间
后端·ruoyi·计算机温情
不懂的浪漫6 小时前
# mqtt-plus 架构解析(八):Spring Boot 自动装配,这些零件是怎么被粘合起来的
spring boot·后端·物联网·mqtt·架构