实验环境
虚拟机: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