# gcc-arm **Repository Path**: openes/gcc-arm ## Basic Information - **Project Name**: gcc-arm - **Description**: 交叉编译工具链的安装 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-05-10 - **Last Updated**: 2025-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 什么是交叉编译工具链 * ARM 裸机、 uboot 移植、 Linux移植这些都需要在 Ubuntu 下进行编译,代码编译就需要编译器 * 但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的!而我们现在要编译的是 ARM 架构的代码 * 所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 gcc 编译器,这个编译器就叫做交叉编译器 * 所谓的交叉编译工具链就是指交叉编译器、链接器以及相关工具的组合 ### 交叉编译工具链下载 * ARM 官方下载地址:https://developer.arm.com/downloads/-/gnu-a * 选择如下版本 ![交叉编译工具链选择](./images/交叉编译工具链选择.png) * 下载完成后要将 gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz 压缩包拷贝到 Linux 开发环境下,我使用的开发环境是 Ubuntu22.04(64位) * 解压缩 ``` sudo tar -vxf gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz ``` * 等待解压完成,这时候会新增一个 gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf 的目录,这个目录中的内容就是我们安装的交叉编译工具链了 ### 修改环境变量 * 打开 /etc/profile 文件 ``` sudo vi /etc/profile ``` * 在最后加上如下内容: ``` export PATH=$PATH:/home/thin-wind/software/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin ``` * 完成添加后的 /etc/profile 如下所示 ![profile](./images/profile.png) * 修改好以后就保存退出 * 想要使更改后的 profile 文件立即生效,可以使用如下命令 ``` source /etc/profile ``` * 直接重启 Ubuntu 也是可以的 ### 依赖库的安装 * 在使用交叉编译器之前还需要安装一下其它的库,命令如下: ``` sudo apt-get update //先更新,否则安装库可能会出错 sudo apt-get install lsb-core lib32stdc++6 //安装库 ``` ### 验证交叉编译器 * 我们可以通过查看一下交叉编译工具的版本号来验证是否安装成功,输入如下命令: ``` arm-none-linux-gnueabihf-gcc -v ``` * 如果交叉编译器安装成功,应成功显示版本信息: ![验证交叉编译器](./images/验证交叉编译器.png) ### 名称解析 * arm:表示这是编译 arm架构代码的编译器。 * none:表示厂商,一般半导体厂商会修改通用的交叉编译器,此处就是半导体厂商的名 字, ARM 自己做的交叉编译这里为 none,表示没有厂商 * linux:表示运行在 linux 环境下 * gnueabihf:表示嵌入式二进制接口 ,后面的 hf 是 hard float 的缩写,也就是硬件浮点,说明此交叉编译工具链支持硬件浮点 * gcc:表示是 gcc 工具。