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平台
Ubuntu 16.04 上安装 arm-linux-gcc-4.4.3的更多相关文章
- Ubuntu 16.04上安装SkyEye及测试
说明一下,在Ubuntu 16.04上安装SkyEye方法不是原创,是来自互联网,仅供学习参考. 一.检查支持软件包 gcc,make,vim(optional),ssh,subversionbinu ...
- 在 Ubuntu 16.04上安装 vsFTPd
在 Ubuntu 16.04上安装 vsFTPd Ubuntu vsFTPd 关于 vsFTPd vsFTPd 代表 Very Secure File Transfer Protocol Daemon ...
- 如何在Ubuntu 16.04上安装配置Redis
如何在Ubuntu 16.04上安装配置Redis Redis是一个内存中的键值存储,以其灵活性,性能和广泛的语言支持而闻名.在本指南中,我们将演示如何在Ubuntu 16.04服务器上安装和配置Re ...
- 在 Ubuntu 16.04 上安装 Eclipse Oxygen
2017 年 6 月 28 日,Eclipse 社区(the Eclipse Community)发布了 Eclipse Oxygen.本文记录了我在 Ubuntu 16.04 上安装 Eclipse ...
- Ternsorflow 学习:000-在 Ubuntu 16.04 上安装并使用 TensorFlow_v1.14 (改)
声明:本人已经对原文链接根据情况做出合理的改动. 本系列文章使用的是Tensorflow v1.14 引言 TensorFlow 是由谷歌构建的用于训练神经网络的开源机器学习软件.TensorFlow ...
- 如何在Ubuntu 16.04上安装Apache Web服务器
转载自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04 介绍 Apache HTTP服务器是 ...
- 如何在Ubuntu 16.04上安装Nginx
原文链接https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 介绍 Nginx是世 ...
- ubuntu 16.04上安装php5.6
php --ini 按下面的步骤,在ubuntu 16.04上面安装成功了 php5.6 dpkg -l | grep php| awk '{print $2}' |tr "\n" ...
- Ubuntu 16.04 上安装 CUDA 9.0 详细教程
https://blog.csdn.net/QLULIBIN/article/details/78714596 前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu1 ...
- 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导
导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络 ...
随机推荐
- 201871010129-郑文潇 实验二 个人项目—《D{0-1}背包问题 》项目报告
项目 内容 课程班级博客链接 课程链接 这个作业要求链接 [作业要求](https://www.cnblogs.com/nwnu-daizh/p/14552393.html) 我的课程学习目标 1.掌 ...
- 【ProLog - 4.0 List】
[简介] 列表是Prolog编程中常用的一种重要的递归数据结构 列表是一个有限的元素序列 实例: 所有Prolog术语都可以是列表的元素,一个非空的List应该含有两个元素:头元素(Head)和尾元素 ...
- 软工个人阅读作业2 —— 构建之法与CI/CD
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业#2 我在这个课程的目标是 阅读思考教材,调研软工工具 这个作业在哪个具体方面帮助我实 ...
- Leedcode算法专题训练(排序)
排序 快速排序 用于求解 Kth Element 问题,也就是第 K 个元素的问题. 可以使用快速排序的 partition() 进行实现.需要先打乱数组,否则最坏情况下时间复杂度为 O(N2). 堆 ...
- Java(100-113)【类与对象、封装、构造方法】
1.对象的创建以及使用 Student stu =new Student(); 根据一个类创建一个对象 导包.创建.使用 2.手机练习 有main才能run Phone.java package cn ...
- RandomForestClassifier参数
[RandomForestClassifier] 参数 n_estimators : 随机森林中树的个数,即学习器的个数. max_features : 划分叶子节点,选择的最大特征数目 n_feat ...
- ASP检测客户是否取消微信公众号
有时因为项目内需要用到检测客户是否已经取消关注微信公众号,只有没被取消执行相关模板信息发送.图文信息发送.视频语音等信息发送给客户才有意义.也可以知道多少客户还在我们的微信公众号关注内.方便后期做公众 ...
- 硬件篇-04-SLAM移动底盘机械设计
这篇比较水,发出来主要是为了呼应专栏主题,既然是实现,那各个方面都得讲一下不是. 底盘SW模型 淘的,主要是看上了它有弹簧阻尼器,适合野外,抗震,但是这种底盘结构转向起来比较吃力.是再有个全轮 ...
- WordPress 函数do_action()详解和应用举例
do_action()函数: 我们经常能看到在一些WordPress函数中调用了do_action()函数,例如get_header(), get_footer()等调用模板的函数中经常调用do_ ...
- 【JDK8】Java8 Stream流API常用操作
Java版本现在已经发布到JDK13了,目前公司还是用的JDK8,还是有必要了解一些JDK8的新特性的,例如优雅判空的Optional类,操作集合的Stream流,函数式编程等等;这里就按操作例举一些 ...