linux-交叉编译链安装

背景:

刚入职一家公司,交叉编译链的安装过程又忘记了,网上一搜,很多,但是很多都是复制粘贴,没得法,自己记录一下,时间长了,再次安装就可以参考下。(这个是在家把正点原子的环境再安装一遍,不是公司环境)

1. 安装虚拟机VMware或者WSL2。

之前公司是安装VMware, 新公司我主要来做mcu的,所以linux这块可能涉及不多就安装WSL2方便快捷。安装过程省略,没什么东西,就记录下步骤。

2. 安装ubuntu。

3. 安装交叉编译器

Linaro GCC 编译器下载地址如下:

https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/

arm-linux-gnueabihf,点击后面的"Binaries"进入可执行文件下载界面。

一般在公司都是同事给的编译链,基本没有自己去找过编译链,这里就是给个链接,实际很少自己去找,原因是在公司都需要保持一致,减少不必要的麻烦。(有点尴尬)

3.1 创建交叉编译链目录:

在 Ubuntu 中创建目录:/usr/local/arm,命令如下:

sudo mkdir /usr/local/arm

创建完成以后将刚刚拷贝的交叉编译器复制到/usr/local/arm 这个目录中,在终端使用命令" cd" 进入到存放有交叉编译器的目录 , 比如我前面将交叉编译器拷贝到了目录

"/home/xl/linux/tool"中,然后使用如下命令将交叉编译器复制到/usr/local/arm 中:

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

3.2 解压编译链:

拷贝交叉编译工具到/usr/local/arm 目录中,拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下:

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

等待解压完成,解压完成以后会生成一个名为"gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf"的文件夹,这个文件夹里面就是我们的交叉编译工具链。

3.3 导入环境变量中:

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

sudo vim /etc/profile

打开/etc/profile 以后,在最后面输入如下所示内容:

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

添加完成以后的/etc/profile 如图

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

3.4 交叉编译器验证

首先查看一下交叉编译工具的版本号,输入如下命令:

arm-linux-gnueabihf-gcc -v

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

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

"arm-linux-gnueabihf-gcc"的含义如下:

(1) arm 表示这是编译 arm 架构代码的编译器。

(2) linux 表示运行在 linux 环境下。

(3) gnueabihf 全称解析‌:gnueabihf 代表 GNU Embedded Application Binary Interface Hard Float,其中:

GNU:开源编译器工具链基础;

Embedded ABI:嵌入式应用二进制接口,定义代码与硬件交互规范;

Hard Float:强制使用硬件浮点单元(FPU)加速计算,相比软浮点(softfp)性能提升20%-300%。

(4) gcc 表示是 gcc 工具。

相关推荐
Fcy6482 小时前
Linux下 数据链路层详解(从以太网到ARP协议)
linux·mac·以太网·数据链路层·arp
‎ദ്ദിᵔ.˛.ᵔ₎4 小时前
linux 进程信号(下)
linux·运维·服务器
skywalk81635 小时前
在FreeBSD系统的linux仿真环境下安装和使用kiro 这个亚马逊的AI agent
linux·人工智能·freebsd·kiro
Mikko75 小时前
Linux 磁盘满了但 du 找不到?LVM 扩容 df 不变?fstab 写错开不了机?三台真机实测磁盘排查
linux·运维·centos
Madison-No75 小时前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman
Liuqy-055 小时前
特殊进程——孤儿、僵尸、守护进程
linux·运维·服务器
流浪0015 小时前
Linux系统篇47——线程(十二) POSIX 信号量与环形队列,把判空判满提前到访问之前
linux·操作系统·线程·信号量·环形队列
咖丨喱6 小时前
【MMC Core + hc16 Host(WiFi SDIO 如何落到控制器)】
linux
等我调个Bug6 小时前
【Linux系统篇】权限
linux·服务器
~光~~7 小时前
【嵌入式linux学习】Cache 策略:Write-Through / Write-Back + Allocation
linux·学习·spring