Ubuntu 16.04 上安装 arm-linux-gcc-4.4.3

参考链接:https://blog.csdn.net/zz56z56/article/details/83021583

注:正常安装后,不同用户切换,需重新刷新环境变量:source /etc/profile

一、下载arm-linux-gcc-4.4.3.tar交叉编译包

1.ARM官网下载

https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

2.百度云下载链接如下:

链接:https://pan.baidu.com/s/1DM9sQUO0T2BuLCL5HPYoSA
提取码:g2se


二、安装交叉编译工具(注:下面所有安装步骤请在普通用户下执行,勿用root,且在同一终端执行)

1.解压安装包 (解压后文件存放路径:/opt/FriendlyARM/toolschain/4.4.3)

命令行:sudo tar -zxvf arm-linux-gcc-4.4.3.tar.gz -C /      # 注:-C 后面有空格

2.将 /opt/FriendlyARM/toolschain/目录下的4.4.3 copy 至 /usr/local/ 目录下新建arm目录下,如下:

cd /usr/local

sudo mkdir arm

sudo chmod 777 arm

sudo cp -r /opt/FriendlyARM/toolschain/4.4.3 /usr/local/arm

3.修改环境变量,将把arm-linux-gcc添加到PATH中。有三种方式,推荐方式 2 :

    方法一:修改/etc/bash.bashrc文件,此文件只对当前用户适用

修改之前先root权限

sudo -s或sudo su -

    sudo gedit /etc/bash.bashrc

  在最后加上export PATH=$PATH:/usr/local/arm/4.4.3/bin

        保存,退出,然后刷新环境变量使其生效:source /root/.bashrc

       方法二:修改/etc/profile文件,此文件对所有用户适用

  sudo gedit /etc/profile

  在最后加上: export PATH=$PATH:/usr/local/arm/4.4.3/bin

  保存,退出,然后刷新环境变量使其生效:

  source /etc/profile

        方法三:修改/etc/environment文件

    sudo gedit /etc/environment

    在最后加上:/usr/local/arm/4.4.3/bin

    保存,退出,然后重启系统

4.检查环境变量和编译器是否安装成功

4.1 环境变量

echo $PATH

如输出:如果可以显示/usr/local/arm/4.4.3/bin,那么环境变量添加成功

4.2 检查arm-linux-gcc是否安装正确

arm-linux-gcc  -v        #正常会显示当前安装版本编号等

如输入arm-linux-gcc -v,输出如下错误:/usr/local/arm/arm-linux-gcc-4.4.3/bin/arm-linux-gcc: 15:exec:

/usr/local/arm/arm-linux-gcc-4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found

原因:使用的是64位系统,但是编译工具是32位,需要安装32位支持库:

解决方案:命令行:sudo apt-get install lib32ncurses5 lib32z1

安装完,再次测试命令:arm-linux-gcc -v,正常情况下会输出如下:

三、编写文件,用安装编译器进行测试

创建main.c文件,输入

#include<stdio.h>

int main()
{

printf("=====123123============\n");
return 0;
}

使用命令: arm-linux-gcc main.c -o main 进行编译

  如果出现如下错误:

/usr/local/arm/arm-linux-gcc-4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: error while loading shared libraries:

libstdc++.so.6: cannot open shared object file: No such file or directory

原因:相应库版本太旧,更新库文件

解决方案:命令行:sudo apt-get install lib32stdc++6

安装完,再次执行命令:arm-linux-gcc main.c -o main,全部完成

编译完成后会生成Hello可执行文件,输入以下命令可以查看生成的文件信息:

输入:readelf -h main

可以看到可执行文件的平台为ARM平台

 

 

转载于:https://www.cnblogs.com/Dana-gx/p/10202658.html