|
/ A' m) M# c& q( H" v( J; O' `* z 原标题:嵌入式Linux开发学习之Ubuntu 交叉编译工具链安装ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,我们在之前的文章中已经讲解了如何在Linux 进行 C 语言开发,里面使用 GCC 编译器进行代码编译,但是Ubuntu 自带的 gcc 编译器是针对X86 架构的!而我们现在要编译的是ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是: : L, |$ r, `9 n; @
1、它肯定是一个GCC 编译器2、这个GCC 编译器是运行在X86 架构的 PC 上的3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。
+ n7 q& u' B. A8 o6 H 交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器,Linaro 一间非营利性质的开放源代码软件工程公司,Linaro 开发了很多软件,最著名的就是 Linaro GCC 编译工具链(编译器),关于Linaro 详细的介绍可以到Linaro 官网查阅。
0 o% c j! W' m# I- } Linaro GCC 编译器下载地址如下:https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/,打开以后下载界面如图所示:
- f+ w: g" t) J' ^- a g# A M Linaro 下载界面 , `% [5 J- \3 M/ P8 r
在上图中有很多种GCC 交叉编译工具链,因为我们所使用的 I.MX6U-ALPHA 开发板是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf,点击后面的“Binaries”进入可执行文件下载界面,如图所示: ' V+ H/ L) p$ P3 q; ]! i- S
Linaro 交叉编译器下载 8 N3 k5 w; \6 `, a2 W
最新的编译器版本是 7.3.1,但是在测试 7.3.1 版本编译器的时候发现编译完成后的uboot 无法运行所以这里不推荐使用最新版的编译器测试过 4.9 版本的编 译 器可 以正 常 工作, 所 以我 们需 要 下载 4.9 版 本的 编 译器, 下 载地 址为 :。 2 Z4 \& {0 q* d
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/ , 如 图所示:4.9.4 版本编译器下载
% J& b! H$ h% T; ] q 图中有很多种交叉编译器, 我们只需要关注这两种:gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz 和 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz,第一个是针对 32 位系统的,第二个是针对 64 位系统的。
( {6 L* M0 R( J5 e 大家根据自己所使用的 Ubuntu 系统类型选择合适的版本,比如我安装的Ubunutu 16.04 是 64 位系统,因此我要使用 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz。 1 ?3 A' _! Q$ o8 d! M# E# P
我们要先将交叉编译工具拷贝到 Ubuntu 中,我们在当前用户根目录下创建了一个名为“linux”的文件夹,在这个 linux 文件夹里面再创建一个名为“tool”的文件夹,用来存放一些开发工具使用前面已经安装好的 FileZilla 将交叉编译器拷贝到 Ubuntu 中刚刚新建的“tool”文件夹中,操作如图所示:。 / M* n! o, v: \- a3 F
拷贝交叉编译器 " P5 C5 H' n$ T4 j
拷贝完成的话 FileZilla 会有提示,如图:
1 N2 R2 z8 a S9 G/ ^5 g 返回搜狐,查看更多责任编辑: ( i. Z4 ` V& o( j0 ^: s
' [& ?7 K! y- d3 m1 t# F. e: E4 X
6 M* p, n$ N( P* O) K$ h( ~
/ D5 ~4 Q7 M! F6 e4 Y/ q% r- F' W2 [" s4 X, j, p
|