• 【嵌入式Linux】5.Ubuntu 交叉编译工具链安装


    前言

    交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。

    其基本特点是:

    1、它肯定是一个 GCC 编译器。
    2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。
    3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯
    片上运行的。
     

    正文

    安装交叉编译器

    交叉编译器有很多种,这里使用的是 Linaro 出品的GCC交叉编译器。

    1.下载网址(因为兼容原因,这里并不是最新版本):Linaro Releases

     这里根据自己安装的Ubuntu系统位数下载对应的版本即可,我下载的是64位版本。

    2.copy下载的文件在Ubuntu系统内,可以参考我的放置路径

    这个路径后边可以放置各种工具

    /home/allen/linux/tool

    3.创建目录

    /usr/local/arm

    将刚才的文件copy到这个目录

    cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz  /usr/local/arm/

    解压文件,解压的文件夹里面就是我们的交叉编译工具链

    tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

    然后就是需要修改环境变量,使能该功能:

    vi /etc/profile

    在最后面输入如下所示内容:

    export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

     修改之后,重启Ubuntu系统,交叉编译工具链(编译器)就安装成功了。

    安装相关库

    sudo apt-get install lsb-core lib32stdc++6

    等待安装结束即可

    交叉编译器验证

    arm-linux-gnueabihf-gcc -v

    如果交叉编译器安装正确的话就会显示版本号:

    可以看出当前交叉编译器的版本号为 4.9.4,说明交叉编译工具链安装成功。

    使用 Ubuntu 自带的 GCC 编译器,我们用的是命令“gcc”。要使用刚刚安装的交叉编译器的时候使用的命令是“arm-linux-gnueabihf-gcc”,“arm-linux-gnueabihfgcc”的含义如下:
    1、 arm 表示这是编译 arm 架构代码的编译器。
    2、 linux 表示运行在 linux 环境下。
    3、 gnueabihf 表示嵌入式二进制接口。
    4、 gcc 表示是 gcc 工具。
     

    为了验证是否安装正确,需要创建一个例子验证一下:

    创建目录放置例程

    /home/allen/linux/driver/board_driver

     上边的结果显示安装正确

    file led.o

    可以看到 led.o 是 32 位 LSB 的 ELF 格式文件,目标机架构为 ARM,说明我们的交叉编译器工作正常。

  • 相关阅读:
    基于PHP+MySQL仓库管理系统的设计与实现
    语音控制系统的安全挑战与防御策略(上)
    菜鸟踩坑之@PostMapping怎么接收String类型的参数
    如何中断一个正在运行的线程?
    黑豹程序员-架构师学习路线图-百科:Mybatis的伴侣MybatisPlus
    AdaBoost介绍
    替换NAS,这5个理由就够了
    计算机网络第一章笔记
    DataFrame截断某行(列)之前(后)的数据DataFrame.truncate()
    gradle java: 程序包org.apache.shiro不存在
  • 原文地址:https://blog.csdn.net/super828/article/details/128059157