RK3588的QT交叉编译环境搭建

主要参考为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版_rk3568交叉编译-优快云博客

先说一下,使用的Ubuntu20.04.5版本,qt源码用的5.14.2版本,交叉编译器使用RK3588 SDK中的,在我这边的路径为/home/yml/Documents/firefly/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin

首先我们配置一下环境变量,将交叉编译器的路径写入PATH,步骤如下所示

sudo vi ~/.bashrc

source ~/.bashrc

验证方式如下,不用带绝对路径就可以查到交叉编译器版本信息即为OK

下面我们先解压qt源码,然后进入目录 ./qt-everywhere-src-5.14.2/qtbase/mkspecs,可以看到里面有很多工具链,找到一个跟RK3588很接近的arm64位的工具链,我们复制一份并改名为aarch64-none-linux-gnu-g++

我们进到aarch64-none-linux-gnu-g++这个目录里,打开qmake.conf文件并将里面的编译器改为我们要用的RK3588的交叉编译器

接下来再回到qt-everywhere-src-5.14.2目录,准备开始编译,这里面-xplatform后面就是我们刚刚在 ./qt-everywhere-src-5.14.2/qtbase/mkspecs下新建的aarch64-none-linux-gnu-g++名称,而/opt/rk-qt5.14则为安装目录

#配置编译参数
./configure -release -opensource -shared -confirm-license -xplatform aarch64-none-linux-gnu-g++ -prefix /opt/rk-qt5.14 -make libs -nomake examples -nomake tests -skip qtmacextras -skip qtandroidextras -no-opengl 

看到下面信息表示配置成功,配置完毕后会生成makefile ,输入make进行编译

编译完成后sudo make install将它安装到指定目录 

如果编译安装过程中报错了也没有太大问题,看看qmake是不是已经生成了,只要生成了就OK

接下来配置环境,首先添加交叉编译器GCC和G++

 然后选择刚编译好的qmake

 新建开发套件,选中刚刚添加的工具

我们拿hello world例程做测试,编译工具选成刚刚设置的RK3588

 

点击小锤子图标构建(不能点运行,因为还没有添加设备) ,生成了hello,我们可以看一下,已经是aarch64平台的了,之后拷到RK3588板上即可运行

Qt中进行交叉编译以支持RK3588平台并调用USB摄像头涉及多个步骤。以下是一个基本的指南: ### 1. 准备工作 - **安装交叉编译工具链**:确保你已经安装了适用于RK3588交叉编译工具链。 - **安装Qt Creator**:下载并安装Qt Creator。 ### 2. 配置Qt Creator 1. **打开Qt Creator**,进入`工具` -> `选项` -> `设备`。 2. **添加新设备**,选择`通用Linux设备`,输入RK3588设备的IP地址、用户名和密码。 3. **配置编译器**: - 进入`工具` -> `选项` -> `构建和运行` -> `编译器`,添加你的交叉编译工具链。 - 在`工具` -> `选项` -> `构建和运行` -> `Qt Versions`中,添加你的交叉编译版本的Qt。 - 在`工具` -> `选项` -> `构建和运行` -> `Kits`中,创建一个新的Kit,选择刚才配置的编译器和Qt版本。 ### 3. 编写代码 创建一个新的Qt项目,并在代码中调用USB摄像头。可以使用`QCamera`类来实现。例如: ```cpp #include <QCamera> #include <QCameraViewfinder> #include <QCameraInfo> #include <QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); QList<QCameraInfo> cameras = QCameraInfo::availableCameras(); if (cameras.isEmpty()) { qWarning("No cameras found"); return -1; } QCamera camera(cameras.first()); QCameraViewfinder viewfinder; camera.setViewfinder(&viewfinder); viewfinder.show(); camera.start(); return app.exec(); } ``` ### 4. 交叉编译 1. **配置项目**:在Qt Creator中,选择刚才配置的Kit。 2. **编译项目**:点击`构建` -> `构建项目`,生成可执行文件。 ### 5. 部署到RK3588 1. **传输目标设备**:确保RK3588设备已经连接到网络,并且可以通过SSH访问。 2. **传输可执行文件**:使用SCP或其他工具将可执行文件传输到RK3588设备。 3. **运行程序**:在RK3588设备上运行可执行文件,测试USB摄像头是否正常工作。 ### 6. 调试 如果程序无法正常运行,可以通过调试工具进行调试。例如,使用`gdb`进行远程调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕诗客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值