网站菜单

ARM嵌入式开发——交叉编译QT

为了给嵌入式开发提供后期的debug平台,现需要搭建一个基于QT的图形化界面。于是开始进行QT的交叉编译,记录一下方便以后复现。

开发环境:

  • 开发板:ARM64架构的RK3399PROX
  • 本地电脑:X86的Ubuntu18.04虚拟机

需求:

  • 虚拟机需要有25G的可用空间

1. 在开发板上安装QT模块

因为一切以开发板为主,因此优先在开发板上安装QT。事后根据开发本的QT版本,在本地电脑安装对应版本的QT。

sudo apt-get update
sudo apt-get install qt5-default
sudo apt-get install qtcreator
sudo apt-get install qtmultimedia5-dev
sudo apt-get install libqt5serialport5-dev

安装完以后,在开发板上运行QT Creator,查看其QT版本。

笔者RK3399ProX的QT版本为5.11.3。稍后我们将在我们自己的PC上进行相同qt源码的交叉编译。,这样做的目的有:

  • 不需要拷贝动态库到主机,减少麻烦
  • 匹配开发板的QT,减少不匹配导致的各种问题

2. 下载对应版本的QT源代码,准备进行编译

前往QT的官方下载地址:点我跳转

笔者的开发板QT为5.11.3,但是QT官网已经因为bug下架了此版本,因此笔者选择了最接近的一个5.12.1(5.12.0交叉编译会报错)。

选择版本,进入single文件夹,选择qt-everywhere-src-5.12.1.tar.xz

3. 进行QT源码编译

  1. 使用sudo nautiles,将下载好的文件放到/usr/local/文件夹内并解压。
  2. 然后使用touch temp创建一个文件,用于编写编译脚本。

下面附上笔者的编译脚本,注释如下

#!/bin/bash
./configure -prefix /usr/local/qt_cross \
-opensource \
-confirm-license \
-xplatform linux-aarch64-gnu-g++ \
-debug \
-no-opengl \
  • -prefix 为选择make install后的安装路径,可以自行选择
  • -opensource为选择安装开源版本
  • -confirm-license为同意协议
  • -xplatform为交叉编译器,具体如何查看一会儿会说
  • -debug
  • -no-opengl:因为开发板不支持opengl所以选择不包括opengl

关于交叉编译器,进入到解压后的qt-everywhere文件夹,qtbase/mkspecs/ 里面为所有的支持的交叉编译器。以前的文章有提到,笔者交叉编译opencv时就安装了aarch-linux-gun-gcc,所以这里就选择这个linux-aarch-gnu-g++。查看里面的.conf文件,确实也是之前安装的编译器(如果没有你的交叉编译器,可以选择一个手动修改里面的.conf文件)。

一切就绪以后,将之前创建的temp文件放到qt-everywhere根目录里。使用sudo chmod 777 temp富裕它最高权限,然后./temp运行。等待几分钟就会配置完成。之后使用如下命令make与make install进行安装即可完成。

make -j4
make install

根据电脑的性能,make可能需要1-10小时不等。笔者使用4核心8线程的虚拟机编译了1个小时,可供参考时间(R9 5900HX)。

显示评论 (0)

文章评论

相关推荐

Yolov5_Seg输出解析

通过矩阵乘法(在代码中称为“matmul”)来计算分割掩码的原因,主要与实例分割网络(例如 YOLOv5 Segmentation)的实现方式有关。这种方法实际上是一种高效的特征图与目标分割系数组合的…

Ubuntu交叉编译Python

在 Ubuntu 上交叉编译 Python 的流程通常用于为不同平台生成可执行文件(如 ARM、MIPS 等)。以下是一般的操作步骤: 1. 安装必要的依赖工具 首先,确保已经安装了编译所需的工具和依…