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

本文主要是介绍嵌入式Qt移植前期准备-思维导图-学习笔记-基于正点原子阿尔法开发板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

嵌入式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

根文件系统的准备

  • 驱动开发时会构建好

这篇关于嵌入式Qt移植前期准备-思维导图-学习笔记-基于正点原子阿尔法开发板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100449

相关文章

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议