交叉编译工具链-交叉编译工具链的安装
709 字
4 分钟
交叉编译工具链-交叉编译工具链的安装
一、常用的交叉编译工具链
常用的交叉编译工具链有很多,如:
- Linaro
- yagarto
- crosstool-ng
- buildroot
| 编译工具链 | 下载地址 | 描述 |
|---|---|---|
| Linaro | https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/ | 提供的 ARM 交叉编译工具链 |
| yagarto | |提供的 ARM 交叉编译工具链 | |
| crosstool-ng | |用于构建自定义交叉编译工具链的工具,它可以支持多种目标平台和配置选项 | |
| buildroot | |用于构建嵌入式 Linux 系统的工具,它可以自动下载、配置、编译和安装交叉编译工具链、内核、根文件系统等组件 |
交叉编译工具链的命名一般遵循 target-platform-triplet 的格式,例如 arm-linux-gcc 表示用于生成 ARM 平台上 Linux 系统下运行的程序的 GCC 编译器¹。
二、ubuntu安装linaro交叉编译工具
前往链接下载最新的编译工具版本
https://snapshots.linaro.org/gnu-toolchain/14.0-2023.06-1/arm-linux-gnueabihf/

下载完成后,通过SFTP传输到ubuntu系统上

在 Ubuntu 中创建目录: /usr/local/arm,命令如下:
sudo mkdir /usr/local/arm将刚刚传输的安装包复制到创建的目录中:
#将交叉编译工具包复制到/usr/local/arm, -f表示强制复制sudo cp gcc-linaro-14.0.0-2023.06-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm -f对复制过来的压缩包进行解压
sudo tar -vxf gcc-linaro-14.0.0-2023.06-x86_64_arm-linux-gnueabihf.tar.xz
解压完成后,配置全局配置文件 /etc/profile
#全局配置文件,它在系统启动时执行,并且为登录系统的每个用户设置环境信息sudo vim /etc/profile在文件末尾输入:
export PATH=$PATH:/usr/local/arm/gcc-linaro-14.0.0-2023.06-x86_64_arm-linux-gnueabihf/bin
改好以后就保存退出,重启 Ubuntu 系统
sudo reboot重启完成后,安装完成。
重启后,还需要安装一些其他库
#lsb-core##这个软件包包含Linux Standard Base(LSB)的核心模块。##LSB是一个标准,旨在提高Linux操作系统之间的兼容性。##安装 lsb-core 可以确保系统符合LSB标准,有时候某些软件依赖于LSB的特定版本,因此需要安装此包
#lib32stdc++6##这是GNU Standard C++ Library的32位版本的软件包##它包括了C++标准库的32位版本,这对于运行那些依赖于32位C++库的应用程序是必需的,尤其是在64位系##统上运行32位应用程序时sudo apt-get install lsb-core lib32stdc++6安装完成后,查看版本
arm-linux-gnueabihf-gcc -v
当我们要使用这个GCC编译时,可以使用 arm-linux-gnueabihf-gcc 命令
- arm 表示这是编译 arm 架构代码的编译器。
- linux 表示运行在 linux 环境下。
- gnueabihf 表示嵌入式二进制接口。
- gcc 表示是 gcc 工具。
三、验证
复制一个工程到目录下

执行编译
make查看结果

可以发现,生成了一个 led.bin 和 led.o 文件
使用命令查看文件信息
file led.o
可以看到 led.o 是 32 位 LSB 的 ELF 格式文件,目标机架构为 ARM,说明我们的交叉编译器工作正常。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
交叉编译工具链-什么是交叉编译工具链
交叉编译工具链介绍交叉编译的概念:为什么嵌入式开发需要在x86主机上编译ARM架构的可执行程序。
2
I.MX6U-C语言裸机点灯
I.MX6U汇编引导跳转C入口,用C语言重写I.MX6U裸机点灯,并生成可烧写的imx镜像。
3
I.MX6U-汇编裸机点灯
I.MX6U用汇编从零实现I.MX6U裸机点灯:IO寄存器配置、时钟使能、编译链接与烧写全过程。
4
I.MX6U-镜像烧写
I.MX6U解析load.imx镜像的IVT、Boot Data与DCD组成,以及烧写到SD卡的完整方法。
5
I.MX6U-设备启动
I.MX6UI.MX6U内部BOOT ROM的启动流程与各启动介质(NOR/NAND/SD/eMMC)的配置选择。
随机文章随机推荐













