01 ARM64交叉编译器环境搭建
案例简介
在PC端编译的QT可执行文件是x86架构,不能在ARM价格的开发板上运行,需要在PC端部署交叉编译的环境,编译出ARM架构的可执行文件。
PC端环境:
PC系统:Ubutu20.04(x86_64架构) (VMware和Ubutu镜像文件都在将05-开发资料\03-QT开发资料目录下)
Qt版本:Qt5.12.9(GCC 9.4.0,64bit)
交叉编译器:aarch64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
交叉编译
先在ubuntu上安装交叉编译器。
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
#查看是否安装,版本号--9.4.0
aarch64-linux-gnu-gcc --version
将05-开发资料\03-QT开发资料目录下的qt-everywhere-src-5.12.9.tar压缩包拷贝至ubuntu主目录,解压。
tar -xvf qt-everywhere-src-5.12.9.tar
打开qt-everywhere-src-5.12.8/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf,把红框里的编译器路径改成刚刚下载(sudo apt install gcc-aarch64-linux-gnu)的编译器路径(用指令下载一般都是在/usr/bin这个路径下),修改后保存。

在主目录右键新建两个目录,“Qt-5.12.9-build” 和 “Qt-5.12.9-arm64”
进入Qt-5.12.9-build目录,执行以下指令生成Makefile文件。
./../qt-everywhere-src-5.12.9/configure -prefix /home/ubuntu/Qt-5.12.9-arm64 -make libs -xplatform linux-aarch64-gnu-g++ -skip qtdeclarative -no-opengl

如果出现上面图片报错,执行指令。
sudo apt update
sudo apt install build-essential
过程中会有两个输入,分别输入“o”和“y”。结束后可看到该目录下生成了Makefile文件。

继续在Qt-5.12.9-build目录下执行下面的指令,开始编译,大概10分钟。
make -j4 2>&1 | tee build.log
编译结束后,继续在Qt-5.12.9-build目录下执行的指令。
make install
结束后可以打开Qt-5.12.9-arm64目录,qmake在bin子目录中。

安装并配置环境
05-开发资料\03-QT开发资料目录下的qt-opensource-linux-x64-5.12.9.run文件拷贝到ubuntu主目录中,在终端进入主目录,执以下命令进入安装界面。
chmod +x qt-opensource-linux-x64-5.12.9.run
./ qt-opensource-linux-x64-5.12.9.run
如果需要登录账号,可断网后退出,重新执行上述命令后无需登录即可安装。进入安装目录根据需要选择安装配置。

安装完毕后,打开QT,按以下步骤进行环境配置。

点击添加GCC-C/GCC-C++,把刚才下载的交叉编译工具的aarch64-linux-gnu-gcc和aarch64-linu-gnu-g++添加进来,用sudo下载的一般在/usr/bin。

点击QT-Version,点击添加,把刚才编译生成的qmake文件(在bin里面)添加进去,加个版本名称。警告可忽略。

点击Kit,名称任意,C,C++选择刚添加的编译器,QT version选择上一步添加的QT version。

新建工程,选择已经配置好的编译环境。

编译工程可得到ARM架构的可执行文件。RK3568上已经部署了QT环境,直接将可执行文件拷贝到开发板上,修改权限后在终端运行即可,也可用鼠标双击打开。