Ubuntu Qt 5.15.2 支持 aarch64

本文介绍了如何在Ubuntu20.04上使用QtCreator4.10.1和Qt5.15.2为RK3588Linux(基于buildroot)的AArch64架构进行开发,包括安装交叉编译工具、配置Qt从源码编译、设置QtCreator环境及测试开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

     AArch64是ARMv8 架构的一种执行状态。 为了更广泛地向企业领域推进,需要引入64 位构架。 同时也需要在ARMv8 架构中引入新的AArch64 执行状态。 AArch64 不是一个单纯的32 位ARM 构架扩展,而是ARMv8 内全新的构架,完全使用全新的A64 指令集。
     QT不需要过多的介绍,跨平台的开发框架,支持各种桌面程序开发,LINUX、Windows、Android、IOS…

在前面尝试过让buildroot支持QT, 在Ubuntu上安装Qt并开发Android程序。接下来尝试使用QT开发arm64应用程序的开发。

平台

Ubuntu20.04 + Qt Creator 4.10.1 + Qt5.15.2
目标平台: RK3588 + Linux(buildroot)

过程

  1. 安装交叉编译工具aarch64-linux-gnu-gcc

  2. 安装Qt和QtCreator
    参考Qt 5.13 Android开发初探 中的QT安装部分,简单点就是下载离线安装包,直接执行安装包.run安装即可。

  3. 编译arm64使用的qmake
    QT官方的包中没有找到对应的支持,所以这一步应该考虑通过编译Qt源码的方式实现。
    下载好代码解压出来:qt-everywhere-src-5.15.2

./configure -prefix $PWD/qtbase/bin -opensource -xplatform linux-aarch64-gnu-g++ -no-opengl -nomake examples -confirm-license 
make -j4

PS

  1. Unknown module(s) in QT: bootstrap-private
    Qt5交叉编译Project Error: Unknown module(s) in QT: script-private解决办法
  2. 编译过程并不一定是成功的,我们的目标并不是要编译出完整的Qt SDK, 最主要的目的是qmake

即使编译出错,通过命令查看是否存在:
qt-everywhere-src-5.15.2/qtbase/bin/qmake
若已经存在,说明不需要继续编译了,进入下一步配置环境

  1. QtCreator配置开发环境
    打开QtCreator > 工具 > 选项
    在这里插入图片描述
    Qt Version 增加一项, 使用前面编好的qmake, 接下来如下图创建一个构建套件:
    在这里插入图片描述
    完成!

  1. 测试开发环境(打开现有的项目)
    QtCreator 可以直接打开CMakeLists.txt 作为项目导入还是相当方便的。
    a. 打开QtCreator文件>打开文件或项目
    b. 找到项目的CMakeLists.txt文件并打开
    c. 配置编译类型和输出路径,aarch64是前面增加的Kit。
    在这里插入图片描述
    修改代码,编译,丢板子里运行验证。
    完成!

参考

在linux上使用qt编译基于arm64的程序
Ubuntu 搭建qt arm64编译环境
Qt when building Qt from source how do I clean old configure configurations?
Qt 5.13 Android开发初探
QT 5.14.2 下载
【QT】aarch64(ARM)系统下编译aarch64(ARM)版本的QT
arm64和aarch64之间的区别

### 编译 PyQtChart 源码为 aarch64 二进制包 为了在 Ubuntu 上编译 PyQtChart 源码以生成适用于 aarch64 平台的二进制包,需遵循一系列特定配置和命令。此过程涉及设置交叉编译环境、获取必要的依赖项以及调整构建参数。 #### 设置交叉编译环境 首先,在主机环境中安装用于 aarch64 的交叉编译工具链: ```bash sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu[^1] ``` 这一步骤确保拥有合适的编译器来为目标架构创建可执行文件。 #### 安装 Qt 和 SIP 工具 由于 PyQtChart 是基于 Qt 构建的应用程序扩展库,因此需要先安装或编译适合目标平台 (aarch64) 的 Qt 版本及其组件(如 OpenGL 和 WebEngine 支持)。同样重要的是 sip,它是 Python 绑定到 C/C++ 类的关键工具之一。 对于 Qt5 及其附加模块,可以参考相似项目的做法来进行交叉编译准备。而对于 sip,则可以直接通过 pip 或者从源代码编译获得针对宿主系统的版本;注意要保证 sip 能够识别并处理来自不同体系结构的目标对象。 #### 获取并解压 PyQtChart 源码 下载最新版的 PyQtChart 压缩包,并将其解压缩至工作目录内: ```bash wget https://www.riverbankcomputing.com/static/Downloads/PyQtChart/PyQtChart-5.15.2.tar.gz tar xf PyQtChart-5.15.2.tar.gz cd PyQtChart-5.15.2/ ``` #### 修改 Makefile 文件适应 arm64 架构 编辑 `Makefile` 添加对 ARM64 架构的支持,类似于其他项目中的实践方法: ```makefile # 在适当位置添加如下内容 linux-arm64: @echo "Building for AArch64..." # 这里应加入实际编译指令... ``` 具体实现取决于原生 Makefile 结构和个人需求,上述仅为示意性片段[^2]。 #### 配置与编译 利用 qmake 来生成专属于 aarch64 的 Makefile 文件,指定正确的路径指向之前已准备好之跨平台开发套件: ```bash qmake CONFIG+=release QMAKE_CXX=aarch64-linux-gnu-g++ QMAKE_CC=aarch64-linux-gnu-gcc ``` 接着运行 make 执行整个工程的实际编译流程: ```bash make -j$(nproc) ``` 最后完成打包操作以便分发给最终用户: ```bash python setup.py bdist_wheel --plat-name manylinux2014_aarch64 ``` 以上即是在 Ubuntu 中将 PyQtChart 源码转换成适配于 aarch64 设备上的二进制形式的大致步骤概述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值