当前位置: 首页 > news >正文

Ubuntu Qt 5.15.2 支持 aarch64

概述

     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之间的区别

相关文章:

  • 【李沐深度学习笔记】损失函数
  • C++与数据结构面经(重中之重)
  • 83、SpringBoot --- 下载和安装 MSYS2、 Redis
  • 【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDxLDxR)?
  • 数据响应式原理
  • Java on Azure Tooling 8月更新|以应用程序为中心的视图支持及 Azure 应用服务部署状态改进
  • Redis与Mybatis
  • 批量删除wordpress文章修订版本/自动草稿残留数据(3种方法)及四种方法禁用WordPress文章历史修订/自动保存/自动草稿功能
  • [JAVAee]MyBatis
  • MySQL数据类型与表单创建
  • HTTP协议
  • Docker(三)、Dockerfile探究
  • 【C++】单例模式
  • 程序员的快乐如此简单
  • Hadoop分布式文件系统
  • celery分布式异步任务队列-4.4.7
  • SpringMVC+统一表现层返回值+异常处理器
  • Golang基础之关键字
  • Java之多线程的生产者消费者问题的详细解析
  • 第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 C: 班级活动
  • 中共中央办公厅、国务院办公厅印发《农村基层干部廉洁履行职责规定》
  • 两岸基层民生发展交流会在浙江开幕
  • AI时代教育如何变革?上海首批 “标准化家长学校”出炉
  • 人民网评:“中国传递爱而不是关税”
  • 对话地铁读书人|来自大学教授的科普:读书日也是版权日
  • 报告:去年物业服务百强企业营业收入均值同比增长3.52%