主要参考为RK3568或RK3288开发板创建交叉编译环境{采用amd64的ubuntu系统配置交叉编译arm64开发环境}(保姆级包括安装QT)超详细记录版_rk3568交叉编译-CSDN博客
先说一下,使用的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板上即可运行