交叉编译器的安装

交叉编译器允许在X86平台编译运行于ARM平台的代码,避免了资源受限的ARM设备上直接编译的难题。EABI则是规定了嵌入式系统的二进制接口,优化了浮点运算性能。本文介绍了如何从Linaro官网下载并安装ARM交叉编译器,并设置了环境变量,以便进行交叉编译。
摘要由CSDN通过智能技术生成

交叉编译器的概念

交叉编译器也叫做交叉编译工具链(cross compilation tool chain),是在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,比如在PC平台(X86 CPU)上 编译 出能运行在以ARM为内核的CPU平台上的程序, 编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。

使用交叉编译器的原因

ARM上可以运行操作系统,所以用户完全可以将ARM当做计算机来使用,理论上也可以在ARM上使用本地的编译器来编译程序.但是,编译器在编译程序时,会产生大量的中间文件,这会占用很大的内存和磁盘空间,且对CPU处理速度要求较高,比如S3C2440A内存、磁盘空间只有几十到100多兆,CPU只有400-500MHz,完全达不到编译程序的要求.所以,在进行ARM-linux嵌入式开发时必须在PC机(x86结构)上编译出能够运行在ARM上的程序,然后再将程序下载到ARM中来运行.这就用到了交叉编译器.

要进行交叉编译,用户需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译用户的源代码,最终生成可在目标平台上运行的代码.交叉编译工具链可以从网上下载,也可以自己制作.

EABI 的概念

EABI,Embeded application binary interface,即嵌入式应用二进制接口,是描述可连接目标代码、库目标代码、可执行文件影像、如何连接、执行和调试以及目标代码生成过程,和c, c++语言接口的规范,是编译连接工具的基础规范,也是研究它们工作原理的基础.简而言之,EABI就是一种编译规范,交叉编译器在编译时,对于浮点运算会使用硬浮点运算,而对于没有硬浮点运算的处理器,比如S3C2440,会使用软浮点,但这样会在速度上受到很大的限制,而EABI则对浮点运算进行了优化,提高了浮点运算的性能,节省了编译时间.

安装交叉编译器

  1. linaro官网 下载 ARM的交叉编译器,因为最新的UBOOT需要使用6.X以上的交叉编译器,所以建议下载较新的交叉编译器进行编译;最新的是9.X,此处我们为了稳定,下载 7.X 的最新版本,具体什么版本可自行下载
    在这里插入图片描述

  2. 下载完 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar 后,复制到 liunx 系统中一个目录中(例如:home/wy/tools)

  3. 使用 tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar 解压压缩包

  4. 设置环境变量(仅当前用户生效,多用户全局生效的方法可改动
    /etc/profile 或者 /etc/bash.bashrc 文件)

    • 在用户家目录下(例如: /home/wy/)
      vi .bashrc
    • 然后在该文件的末尾加入:export PATH=$PATH:/home/wy/tools/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin (这里的路径是编译器的安装路径),改动好了之后保存。
    • source .bashrc //让改动过的环境变量生效
  5. 使用 arm-linux-gnueabi-gcc -v 查看交叉编译器的版本号

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荻夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值