参考链接: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平台

 

 

Ubuntu 16.04 上安装 arm-linux-gcc-4.4.3的更多相关文章

  1. Ubuntu 16.04上安装SkyEye及测试

    说明一下,在Ubuntu 16.04上安装SkyEye方法不是原创,是来自互联网,仅供学习参考. 一.检查支持软件包 gcc,make,vim(optional),ssh,subversionbinu ...

  2. 在 Ubuntu 16.04上安装 vsFTPd

    在 Ubuntu 16.04上安装 vsFTPd Ubuntu vsFTPd 关于 vsFTPd vsFTPd 代表 Very Secure File Transfer Protocol Daemon ...

  3. 如何在Ubuntu 16.04上安装配置Redis

    如何在Ubuntu 16.04上安装配置Redis Redis是一个内存中的键值存储,以其灵活性,性能和广泛的语言支持而闻名.在本指南中,我们将演示如何在Ubuntu 16.04服务器上安装和配置Re ...

  4. 在 Ubuntu 16.04 上安装 Eclipse Oxygen

    2017 年 6 月 28 日,Eclipse 社区(the Eclipse Community)发布了 Eclipse Oxygen.本文记录了我在 Ubuntu 16.04 上安装 Eclipse ...

  5. Ternsorflow 学习:000-在 Ubuntu 16.04 上安装并使用 TensorFlow_v1.14 (改)

    声明:本人已经对原文链接根据情况做出合理的改动. 本系列文章使用的是Tensorflow v1.14 引言 TensorFlow 是由谷歌构建的用于训练神经网络的开源机器学习软件.TensorFlow ...

  6. 如何在Ubuntu 16.04上安装Apache Web服务器

    转载自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04 介绍 Apache HTTP服务器是 ...

  7. 如何在Ubuntu 16.04上安装Nginx

    原文链接https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 介绍 Nginx是世 ...

  8. ubuntu 16.04上安装php5.6

    php --ini 按下面的步骤,在ubuntu 16.04上面安装成功了 php5.6 dpkg -l | grep php| awk '{print $2}' |tr "\n" ...

  9. Ubuntu 16.04 上安装 CUDA 9.0 详细教程

    https://blog.csdn.net/QLULIBIN/article/details/78714596 前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu1 ...

  10. 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导

    导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络 ...

随机推荐

  1. 201871030118-雷云云 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客 班级链接 这个作业要求链接 作业链接 我的课程学习目标 (1)体验软件项目开发中的两人合作,练习结对编程(2)掌握Github协作开发程序的操作方法(3)学习遗传算法 这个作 ...

  2. 【Git基本命令】

    [基本指令] git init :使目标文件夹变成一个仓库 git add <文件名,含后缀> : 告诉git我要添加文件了 git commit -m "<提交说明> ...

  3. HTML5是什么

    HTML5是目前超文本标记语言 (Hyper Text Markup Language)最新修订版.HTML可以理解为一门程序语言,HTML5字面的意思,这门程序语言的第五次修订,也是HTML的第五个 ...

  4. keepalived安装及组合nginx配置负载实现高可用

    目录 1. Keepalived安装配置 1.1 官网下载tar包 1.2 上传到指定目录安装 1.3 配置文件 1.4 配置nginx检测脚本文件 1.5 keepalived 启动/重启/停止/查 ...

  5. Unity 渲染流水线 :CPU与GPU合作创造的艺术wfd

    前言 对于Unity渲染流程的理解可以帮助我们更好对Unity场景进行性能消耗的分析,进而更好的提升场景渲染的效率,最后提升游戏整体的性能表现 Unity的游戏画面的最终的呈现是由CPU与GPU相互配 ...

  6. Scrapy入门到放弃01:开启爬虫2.0时代

    前言 Scrapy is coming!! 在写了七篇爬虫基础文章之后,终于写到心心念念的Scrapy了.Scrapy开启了爬虫2.0的时代,让爬虫以一种崭新的形式呈现在开发者面前. 在18年实习的时 ...

  7. Python多环境管理——pyenv

    1 背景&概述 因某些需求,需要安装TensorFlow,很自然地在终端敲下了以下命令: pip install tensorflow 然后... 好家伙??? 居然没有?? 因为是Pytho ...

  8. kubernetes CRD

    官方文档:https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions ...

  9. Kubernetes删除一直处于Terminating状态的namespace

    问题现象: 删除namespace,一直处于Terminating,并且用--force --grace-period=0 也删除不了 develop Terminating 4d9h Error f ...

  10. C语言-内存函数的实现(一)之memcpy

    C语言中的内存函数有如下这些 memcpy memmove memcmp memset 下面看看memcpy函数 memcpy 我们想想,之前有那个字符串拷贝的函数,即strcpy函数.都有拷贝的函数 ...