嵌入式linux学习之交叉编译器安装

交叉编译器介绍

ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,在 Liux 进行 C 语言开发里面使用 GCC 编译器进行代码编译,但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器,总结一下交叉编译器就是:
1. 它肯定是一个 GCC 编译器。
2. 这个 GCC 编译器是运行在 X86 架构的 PC 上的。
3. 这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯片上运行的。
交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。交叉编译器有很多种,ST 也有推荐的通用交叉编译器,一个是 ARM 官方出品的:gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf,一个是 linaro 出品的:gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz,下载地址在https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabi/本教程我们使用 ARM 官方出品的交叉编译器。

  1. 首先是下载 ARM 官方出品的交叉编译器,编译器下载地址如下:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads,打开以后如图所示在这里插入图片描述

  2. 在 Ubuntu 中创建目录:/usr/local/arm,

  3. 创建完成以后将刚刚拷贝的交叉编译器复制到/usr/local/arm 这个目录中, 进 入 到 存 放 有 交 叉 编 译 器 的 目 录 ,

  4. 拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下,也可图形化节点点击解压文件:
    sudo tar -vxf gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz

  5. 等待解压完成,解压完成以后会生成一个名为“gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。

  6. 修改环境变量,使用打开/etc/profile 文件,命令如下:
    sudo vi /etc/profile

  7. 打开/etc/profile 以后,在最后面输入如下所示内容:
    export PATH=$PATH:/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin
    添加完成以后的/etc/profile 如图所示
    在这里插入图片描述

  8. 修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。

  9. 在使用交叉编译器之前还需要安装一下其它的库,命令如下:
    sudo apt-get update //先更新,否则安装库可能会出错
    sudo apt-get install lsb-core lib32stdc++6 //安装库
    等待这些库安装完成。

交叉编译器验证

首先查看一下交叉编译工具的版本号,输入如下命令:
arm-none-linux-gnueabihf-gcc -v
如果交叉编译器安装正确的话就会显示版本号:
在这里插入图片描述

相关推荐

  1. 嵌入交叉编译linux fdk-aac

    2024-03-31 00:38:02       39 阅读
  2. 嵌入Linux编辑器vi

    2024-03-31 00:38:02       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 00:38:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 00:38:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 00:38:02       82 阅读
  4. Python语言-面向对象

    2024-03-31 00:38:02       91 阅读

热门阅读

  1. C++ | filesystem file not found

    2024-03-31 00:38:02       48 阅读
  2. brctl 命令

    2024-03-31 00:38:02       44 阅读
  3. ChatGPT写作攻略:完善学术论文技巧指南

    2024-03-31 00:38:02       42 阅读
  4. Linux IRC

    Linux IRC

    2024-03-31 00:38:02      41 阅读
  5. 工作日志- 不定期更新

    2024-03-31 00:38:02       44 阅读
  6. P19:注释

    2024-03-31 00:38:02       37 阅读
  7. 实现元素水平垂直居中的方法

    2024-03-31 00:38:02       44 阅读
  8. SpringBoot -- 错误处理机制

    2024-03-31 00:38:02       43 阅读
  9. vue3从精通到入门1: vue3特点以及与vue2的区别

    2024-03-31 00:38:02       41 阅读
  10. 面试宝典:深入分析golang 的反射(reflect)

    2024-03-31 00:38:02       36 阅读
  11. 深入Python元编程:从基础到实践

    2024-03-31 00:38:02       39 阅读