嵌入式Qt移植前期准备-思维导图-学习笔记-基于正点原子阿尔法开发板

news2024/12/26 13:32:58

嵌入式Qt移植前期准备

在这里插入图片描述

概述

Qt官方在哪些平台/系统有支持?

  • Windows

  • Ubuntu

  • IOS

为什么要进行Qt移植?

  • 自制系统,如BusyBox简易系统,希望能运行Qt

  • 厂家提供的Qt库太大,太全,占空间

  • 版本升级,想用其它好用的Qt版本

嵌入式Qt移植有几种方法?

  • 编译Qt源码,得到Qt库文件,部署到嵌入式系统中

    • Qt源码

      • Qt源码在官网可以找到

      • 下载这个源码后编译

      • 可以得到Qt库.so

        • Windows下是.dll
  • 利用开源的嵌入式Linux系统自动构建框架Buildroot或者Yocto

    • Buildroot

      • 可以很方便的把这个QT给它构建出来
    • Yocto

      • 容易编译出错,而且十分的巨大

嵌入式Qt移植方法对比说明

嵌入式Qt移植之编译器与根文件系统准备

安装通用型交叉编译器

  • 简介

    • 编译器需求

      • ARM 裸机、Uboot 移植、Linux 移植都需要在 Ubuntu 系统下进行编译

      • 编译这些代码需要编译器的支持

    • 编译器类型

      • Ubuntu 自带的 GCC 编译器是针对 X86 架构的
    • 交叉编译器

      • 由于编译目标是 ARM 架构的代码,需要一个在 X86 架构的 PC 上运行、可以编译 ARM 架构代码的 GCC 编译器

      • 这种编译器称为交叉编译器

    • 交叉编译器的特性

      • GCC 编译器:必须是一个 GCC 编译器

      • 运行平台:运行在 X86 架构的 PC 上

      • 编译目标:编译 ARM 架构代码,生成的可执行文件在 ARM 芯片上运行

      • “交叉”含义:在一个架构上编译另一个架构的代码,相当于两种架构“交叉”起来

    • 交叉编译器的选择

      • 市场上有多种交叉编译器可供选择

      • 这里推荐使用 Linaro 出品的交叉编译器

    • 关于 Linaro

      • Linaro 是一家非营利性质的开源软件工程公司

      • Linaro 开发了多种软件,最著名的是 Linaro GCC 编译工具链(编译器)

  • 下载

    • Linaro GCC 编译器下载地址

      • https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/

      • Linaro 下载界面

    • I.MX6U-ALPHA 开发板是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf,点击后面的“Binaries”进入可执行文件下载界面

    • 4.9 版本的编译器可以正常工作,所以我们需要下载4.9版本的编译器

      • https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/

      • 4.9.4 版本编译器下载

      • Ubuntu 16.04 和18.04 是 64 位系统,因此选择gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

      • 这两种交叉编译器已经下载好

        • 存放在开发板光盘中,路径:5、开发工具->1、交叉编译器
  • 使用FileZilla 将交叉编译器拷贝到 Ubuntu 中

  • 在Ubuntu 中创建目录:/usr/local/arm

    • sudo mkdir /usr/local/arm
  • 使用如下命令将交叉编译器复制到 /usr/local/arm 中

    • sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f
  • 在/usr/local/arm 目录中对交叉编译工具进行解压

    • sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

    • 等待解压完成,解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-
      gnueabihf”的文件夹

  • 修改环境变量,使用VI 打开/etc/profile 文件

    • sudo vi /etc/profile
  • 打开/etc/profile 以后,在最后面输入如下所示内容

    • export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

  • 修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了

  • 交叉编译器验证

    • 查看一下交叉编译工具的版本号

      • arm-linux-gnueabihf-gcc -v

根文件系统的准备

  • 驱动开发时会构建好

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2069599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蒙特卡洛应用:RTX 光线追踪算法 ReSTIR 原理

接上文:蒙特卡洛方法相关论文:《Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting: 2020》 ReSTIR 算法全称为 GIalgorithm based on Spatiotemporal Reservoir Resampling,是一种在实时路径追…

面试利器:产品经理必备的40+高频面试题集,收藏这一篇就够了

产品经理的面试,一般会问什么问题? 作为公司的产品负责人,大小也面了不下 100 个产品,产品经验横跨了 0~3 年、3~5 年。 我罗列了一些常用的产品面试问题,主要有“开始、产品、中级、考察、结束”等五类,…

【C++ 面试 - 面向对象】每日 3 题(十二)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

区间预测|基于灰狼优化最小二乘支持向量机的多变量回归区间预测Matlab程序GWO-LSSVM-ABKDE

区间预测|基于灰狼优化最小二乘支持向量机的多变量回归区间预测Matlab程序GWO-LSSVM-ABKDE 文章目录 前言区间预测|基于灰狼优化最小二乘支持向量机的多变量回归区间预测Matlab程序GWO-LSSVM-ABKDE 一、GWO-LSSVM-ABKDE模型1. 灰狼优化算法(GWO)2. 最小二…

vue.js - 看板娘 Live2d

文中的资源文件在这里:我的资源中,打好包了已经,地址:live2d资源 1、在项目的 src/assets 文件夹中,添加 live2d 的资源文件 2、在 src/components 文件中,编写 live2d的index.vue组件 3、在 App.vue 中…

AI在医学领域:在软组织和骨骼肿瘤放射学成像中的应用综述

软组织和骨骼肿瘤(Soft-tissue and bone tumours,STBT)是人体中较为罕见的肿瘤,包括良性和恶性病变。恶性STBT,约占所有肿瘤的1%。这些肿瘤可以发生在任何年龄和几乎所有解剖部位,起源于包括肌肉、脂肪、血…

富唯智能公司和产品介绍

公司介绍 广州富唯智能科技有限公司是一家专注于人工智能与柔性智造领域的高新技术企业,于2022年联合清华大学深圳国际研究生院成立,拥有多名业内顶尖的人工智能专家、智能制造专家以及硕士和博士组成的高水平研发团队。 公司致力于用前沿的人工智能技…

GenAI大模型应用方法选择深度解析: 模型训练,微调,检索增强RAG和提示工程

重点摘要 每种生成式人工智能学习方法都有其独特的优势和理想应用场景: 模型训练(Model Training):需要大量的数据和计算资源来从头构建一个人工智能模型。它具有高度的可定制性和可扩展性,但耗时较长。 微调(Fine-Tuning):专注…

win11成功点亮 WSL 创建的 Linux 子系统 jupyter服务 并配合 conda 环境运行代码【保姆级教程】

🥇 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 🎉 声明: 作为全网 AI 领域 干货最多的博主之一,❤️ 不负光阴不负卿 ❤️ 文章目录 零、前言一、安装 jupyter notebook二、生成jupyter notebook配置文件三、设置J…

力扣top100-链表类题易错点总结-c++实现(更新中)

首先给一个我之前写的双指针在链表类题中的妙用的link:双指针在链表中的妙用 tip1 来自“合并两个有序链表” 题目链接戳这里 这道题注意的就是如果是要返回一个新链表的头结点,一定要新建一个头结点: ListNode* prehead new ListNode…

备考计算机二级Python之Day5

第5章 函数和代码 一、函数的基本使用 函数是一段具有特定功能的、可重用的语句组,通过函数名来表示和调用。 函数的使用包括两部分:函数的定义和函数的使用 1、函数的定义 Python语言通过保留字def定义函数,语法形式如下: …

判别分析2|Bayes判别分析|Fisher判别分析|软件求解

Bayes判别分析 引入先验信息 距离判别只要求知道总体的数字特征,不涉及总体的分布函数 当均值和协方差未知时,就用样本的均值和协方差矩阵做估计值。距离判别方法简单实用,但没有考虑到每个总体出现的机会大小,即先验概率&#…

数据结构(邓俊辉)学习笔记】优先级队列 09——左式堆:合并算法

文章目录 1. LeftHeap模板类2. 算法3. 实现4. 实例 1. LeftHeap模板类 接下来这节,来讨论左式堆的合并算法。再给出具体算法之前,首先要给出左式堆模板类的定义。 比如这就是一种可能的实现方式,可以看到,我们这里再次利用了 C…

srm供应商一体化招采系统解决方案,需求功能清单以及源码实现(JAVA)

1. 供应商管理 2. 采购需求管理 3. 采购寻源管理 4. 采购合同管理 5. 采购订单管理 6. 采购协同管理 7. 外部商城采购管理 8. 报表查询管理 9. 系统管理 10. 集成管理 资料获取:本文末个人名片。

在Activity中使用Menu

在Activity中使用Menu 手机毕竟和电脑不同,它的屏幕空间非常有限,因此充分地利用屏幕空间在手机界面设计中就显得非常重要了。如果你的活动中有大量的菜单需要显示,这个时候界面设计就会比较尴尬,因为仅这些菜单就可能占用屏幕将…

构建高效的串行任务执行器:SerialExecutor深度解析

本文主要介绍怎么去实现一个支持串行执行任务的SerialExecutor执行器 摘要 在复杂的异步编程中,有时我们需要确保任务以串行的方式执行,以维护任务间的依赖关系或顺序。SerialExecutor 是一个自定义的执行器,它封装了 Java 的 Executor 接口…

Linux磁盘分区,增加磁盘应用实例,磁盘情况查询

目录 linux磁盘分区机制 原理介绍 示意图 硬盘说明 查看所有设备挂载情况 挂载的经典案例 给虚拟机添加硬盘 分区 删除挂载 永久挂载 磁盘情况查询 查询系统整体磁盘使用情况 查询指定目录的磁盘占用情况 linux磁盘分区机制 原理介绍 载入可以将一个分区和一个目录…

【精选】基于微信小程序的地铁站点查询系统(全网独一无二,阿龙原创设计)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

C#入门篇3

目录 一、练习 二、显示类型转换(强制类型转换) 三、Convert的转换工厂转换 四、算数运算符号之( /--) 五、关系运算符(比较运算) 六、逻辑运算符 七、复合运算符 一、练习 计算半径为5的圆的面积和周…

Windows平台SDKMAN工具使用

为方便jvm生态的软件版本管理,可以使用sdkman工具来安装和管理诸如java、gradle等软件的当前使用版本。尤其是大多数程序员都是在windows平台开发,团队开发通常都需要统一的jvm相关软件的版本。这里给大家演示下windows平台如何安装和使用sdkman来实现这…