参考链接: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. 围绕 Kubernetes 的 8 大 DevOps 生产关键实践

    本文主要介绍 DevOps 的 8 大关键实践在 Kubernetes 平台下如何落地,结合我们目前基于 Kubernetes 平台的 DevOps 实践谈谈是如何贯彻相关理念的,这里不会对其具体实现 ...

  2. C++中的广义集合于for范围访问

    在C++11中可以通过for在范围循环中访问广义集合 如: std::vetcor v={1,2,3}; int a[4] {1,2,3,4}; std::array<int,4>a2 { ...

  3. 如何从 dump 文件中提取出 C# 源代码?

    一:背景 相信有很多朋友在遇到应用程序各种奇葩问题后,拿下来一个dump文件,辛辛苦苦分析了大半天,终于在某一个线程的调用栈上找到了一个可疑的方法,但 windbg 常常是以 汇编 的方式显示方法代码 ...

  4. Java8中的Stream流式操作 - 入门篇

    作者:汤圆 个人博客:javalover.cc 前言 之前总是朋友朋友的叫,感觉有套近乎的嫌疑,所以后面还是给大家改个称呼吧 因为大家是来看东西的,所以暂且叫做官人吧(灵感来自于民间流传的四大名著之一 ...

  5. Git分支及其协同开发

    目录 Git分支 Git是如何保存数据的 Git分支的本质 Git分支的操作 远程仓库与本地仓库分支开发 一个项目多个远程仓库 远程仓库操作命令 协同开发 Git flow工作流 GitLub安装搭建 ...

  6. 敏捷史话(十五):我发明了敏捷估算扑克牌 —— James Greening

    雪鸟会议 雪鸟会议前夕,James Grenning 在 Object Mentor 与 Robert C. Martin 一同工作,彼时组织雪鸟会议的 Bob 大叔盛情邀请 James,告知他会议的 ...

  7. 微服务的进程间通信(IPC)

    微服务的进程间通信(IPC) 目录 微服务的进程间通信(IPC) 术语 概述 通信视角 APIs 消息格式 RPC REST gRPC 断路器 API通信的健壮性 服务发现 异步消息 概念 消息 消息 ...

  8. 机器学习03-sklearn.LinearRegression 源码学习

    在上次的代码重写中使用了sklearn.LinearRegression 类进行了线性回归之后猜测其使用的是常用的梯度下降+反向传播算法实现,所以今天来学习它的源码实现.但是在看到源码的一瞬间突然有种 ...

  9. 中文NER的那些事儿1. Bert-Bilstm-CRF基线模型详解&代码实现

    这个系列我们来聊聊序列标注中的中文实体识别问题,第一章让我们从当前比较通用的基准模型Bert+Bilstm+CRF说起,看看这个模型已经解决了哪些问题还有哪些问题待解决.以下模型实现和评估脚本,详见 ...

  10. hdu2056 矩形重叠面积(水题)

    题意:       给你两个矩形,问你他们的重叠面积是多少. 思路:      这两个矩形是平行x和y轴的,所以水题,不解释. #include<stdio.h> typedef stru ...