Bootstrap

Linux下安装配置交叉工具链

实验环境

虚拟机:VMware-workstation-full-17.0.0
下载地址:https://www.vmware.com/cn/products/workstation-pro.html
镜像:ubuntu-22.04.2-desktop-amd64.iso
下载地址:https://cn.ubuntu.com/download/desktop
工具链:arm-linux-gcc-4.3.2.tgz
下载地址:http://www.friendlyelec.com.cn/download.asp

实验过程

1.下载安装包

①在Windows环境下下载工具链压缩包,再使用WinSCP或Xftp等软件上传至虚拟机中。
②直接在Ubuntu系统中的火狐浏览器进行下载。(最简单最便捷最推荐,如下图所示)
在这里插入图片描述
两种方式取其一,最终要将安装包放在Linux系统下的主目录中:(如下图所示)
在这里插入图片描述

2.解压缩

2.1 打开终端,使用命令进行解压缩,解压得到文件夹usr。

tar zxvf arm-liunx-gcc-4.3.2.tgz

2.2 使用ls命令查看可以看到usr文件夹
在这里插入图片描述

3. 建立arm文件夹

3.1 使用命令cd /usr/local/ 进入文件夹,使用 ls 命令查看local文件夹的内容,结果没有arm文件夹。 (如果使用ls命令后发现local文件夹中本就有arm文件夹,则参考篇尾“其他问题 3”)
3.2 在local文件夹中新建arm文件夹

sudo mkdir arm

新建文件夹后使用ls命令查看:
在这里插入图片描述

3.3 将解压好的arm-linux-gcc-4.3.2文件夹内的内容复制到arm文件夹下

sudo cp -rv /home/han/usr/local/arm/4.3.2 /usr/local/arm

注意:上述命令“han”替换为自己的用户名
3.4进入目录/usr/local/arm/4.3.2/bin,使用ls 命令查看
在这里插入图片描述

4.环境变量配置

4.1 使用命令打开配置文件

sudo vim /etc/pofile

在这里插入图片描述

4.2 添加环境变量
在配置文件末尾添加命令:

export PATH=$PATH:/usr/local/arm/4.3.2/bin

在这里插入图片描述
注意:打开配置文件建议使用 sudo vim /etc/profile 命令,该文件为只读文件,不加sudo时进行环境变量配置没法添加进去。

4.3 运行source命令,使配置生效

source /etc/profile

检测是否将路径加入到PATH中

echo $PATH

在这里插入图片描述

5.验证安装

安装配置结束,验证交叉编译器是否正确安装,使用以下命令:

arm-linux-gcc -v

若显示如下,表示安装成功:
在这里插入图片描述

若显示如下图所示:
在这里插入图片描述 这是因为你的宿主机是64位的Linux,而你安装的交叉编译工具链(因为我们在宿主机上编译后最终安装进目标机的程序是32位的)是基于32位系统的,所以需要为64位宿主机安装32位兼容包。

输入以下命令:

sudo apt-get install lib32ncurses5-dev

注意:有参考使用命令 sudo apt-get install lib32ncurses5,会出现报错:E: 无法定位软件包 lib32ncurses5,请参考“其他问题~5”

安装完成以后,重新验证 arm-linux-gcc -v 命令
在这里插入图片描述
安装完成!!!

其他问题

3.进入目录“/usr/local”查看,发现本就有arm文件夹,则不需要新建arm文件夹(也无法新建)。在arm/4.3.2/bin中可以看到有各个编译器,则只需把这个路径加入到环境变量中(即继续上述操作4、5···)。
在这里插入图片描述
5.使用命令 sudo apt-get install lib32ncurses5
在这里插入图片描述
原因:
从上面这个报错其实也知道原因了,就是在“更新源地址平台上”找不到相应的“lib32ncurses5”软件包。找不到软件包通常是软件包名输入错误,或者说,没有这个软件包了,有些软件包可能会被移除或被其它的软件包替代了等等。
解决方法:
将apt-get install lib32ncurses5改为apt-get install lib32ncurses5-dev

文章参考:
https://blog.csdn.net/Dustinthewine/article/details/127463575
https://blog.csdn.net/qq_41547890/article/details/116672321

;