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

嵌入式Qt移植前期准备

概述

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

  • Windows

  • Ubuntu

  • IOS

为什么要进行Qt移植?

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

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

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

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

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

    • Qt源码

  • 利用开源的嵌入式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 编译工具链(编译器)

  • 下载

  • 使用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

根文件系统的准备

  • 驱动开发时会构建好
相关推荐
j7~3 分钟前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
日拱一卒的小田6 分钟前
ZYNQ学习笔记4-ZYNQ的SD卡控制器2
笔记·学习
江湖人称菠萝包10 分钟前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter8-绘图
笔记·qt·qt5
xieliyu.14 分钟前
JVM 垃圾回收机制详解:从标记过程、回收算法到垃圾收集器
java·jvm·笔记·java-ee
xieliyu.17 分钟前
前端基础:常见CSS选择器用法
前端·css·笔记·vscode
周玉奎先生18 分钟前
河南少商新材料CGM灌浆料:扎根河南工程现场的水泥基灌浆材料
经验分享·笔记·零售
外收内放18 分钟前
Python与AI应用(项目开发实战:AI智能伴侣第一版)
python·学习·ai编程
へ蟲児.19 分钟前
幼儿英语启蒙APP怎么选,专业性、适配性、实用性三大角度解读
学习
西西弗Sisyphus30 分钟前
Qt 实现一个 水波进度球
c++·qt·c
动词ing31 分钟前
【学习笔记】动态规划+背包问题
笔记·学习