Ubuntu16.04 ARM/Qt 交叉编译环境搭建

嵌入式开发

  • Ubuntu16.04 ARM/Qt 交叉编译环境搭建
    • 背景
    • 环境说明
    • 安装交叉编译工具
    • 下载Qt源码包
    • 编译Qt源码
    • 安装QtCreator
    • 配置QtCreator
    • 应用QtCreator交叉编译

Ubuntu16.04 ARM/Qt 交叉编译环境搭建

最近由于工作需要,接触到交叉编译,鉴于之前没有完整做过这方面的工作,记录一下。后续也会尽量把相关的内容都加入进来

背景

客户需求要在嵌入式环境中使用相机,这个相机之前有完整的windows版本SDK,嵌入式下面还没开发过,因此需要移植,目前考虑的主要问题就是环境搭建吧,代码理论上应该不需要改动或者改动比较小。客户用的开发板是toybrick-3399Pro,目前手上只有Firefly-RK3288,两个架构有所不同,前者是六核ARM 64位处理器(双核Cortex-A72+四核Cortex-A53),ARMv8指令集,后者是四核ARM 32位处理器(四核Cortex-A17),ARMv7-A指令集,对于交叉编译来说,就是32位和64位的区别。为了验证整个移植过程,先在Firefly-RK3288上跑通Qt Demo,然后再更换交叉编译工具,编好后给客户测试。
(32位和64位会放在一起说明,不同的平台基本步骤是一样,如果是自己用,针对自己的平台处理一种就行了,没必要32位和64位都下载)

环境说明

服务器:虚拟机+ubuntu16.04 64位

安装交叉编译工具

所有操作都在root权限下进行。
交叉编译安装方法有两种:可以直接apt-get安装,也可以自己下载源文件
1、apt-get安装

$sudo apt-get install gcc-arm-linux-gnueabihf
$sudo apt-get install g++-arm-linux-gnueabihf

这种安装方式,不需要手动添加环境变量,安装完成后,交叉编译工具会放在/usr/bin目录下

2、手动安装
如果无法用apt-get安装,提示:Unable to locate package gcc-arm-linux-gnueabihf,可以单独下载交叉编译器。
下载地址:https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/
这里面有很多版本,区别无外乎几个:大小端,Armv7/Armv8,32位/64位,裸机/Linux,具体如下表:
Ubuntu16.04 ARM/Qt 交叉编译环境搭建_第1张图片

名称 syscall 指令集 大小端 位宽 description
aarch64-linux-gnu linux ARMv8 little 64 aarch64 Linux Platform
aarch64_be-linux-gnu linux ARMv8 big 64 aarch64 Linux Platform
arm-linux-gnu-gnueabi linux ARMv7 little 32 arm EABI soft-float
arm-linux-gnu-gnueabihf linux ARMv7 little 32 arm EABI hard-float
armeb-linux-gnu-gnueabi linux ARMv7 big 32 arm EABI soft-float
armeb-linux-gnu-gnueabihf linux ARMv7 big 32 arm EABI hard-float
arm-eabi BareMetal ARMv7 little 32 arm EABI hard-float
armeb-eabi BareMetal ARMv7 big 32 arm EABI soft-float
aarch64-elf BareMetal ARMv8 little 64 armv8 EABI,hard-float

对于32位arm平台下载
gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz.
因为后面还有64位平台需要处理,所以还下载了64位的交叉编译工具
gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz.
下载完成后,手动安装:

$tar -xvf gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.

你可能感兴趣的:(ubuntu,qt,交叉编译,arm,qtcreator)