【转】64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解
安装步骤
1、准备工具安装目录
下载 arm-linux-gcc 4.4.3
下载链接 http://www.linuxidc.com/Linux/2011-05/35906.htm
将压缩包arm-Linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/aldrich/arm,如下图,记住这个路径,等会还会用到。
.tar.gz 和.tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
2、安装软件
使用tar命令:tar zxvf arm-linux-gcc-4.3.2.tgz将software文件夹下的arm-linux-gcc-4.3.2.tgz解压缩安装到当前目录。通过下图可以看到解压成功了,并且解压后的文件存放在了
/home/aldrich/arm/arm-linux-gcc-4.3.2
文件夹下,如下图所示,这个存放路径可得记住,如下图
3、配置系统环境变量
配置环境前先坐下普及:
Ubuntu不同目录下profile与bashrc的区别
/etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bash.bashrc 为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bash_profile 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
~/.bash_logout 当每次退出系统(退出bash shell)时,执行该文件。
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。
~/.bash_profile 是交互式、login 方式进入 bash 运行的。
~/.bashrc 是交互式 non-login 方式进入 bash 运行的。
通常二者设置大致相同,所以通常前者会调用后者。
接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim /home/aldrich/.bashrc 编辑.bashrc文件,添加环境变量。
在该文件中最后一行添加:
export PATH=$PATH:/home/aldrich/arm/arm-linux-gcc-4.3.2/bin
这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图
编写完保存就好了
4、使环境变量生效
使用命令:source /home/aldrich/.bashrc 使环境变量生效
5、检查环境变量是否设置成功
在终端上输入命令 arm-linux 再按Tab键,可以看到下图,说明环境变量设置成功了
6、安装32位库兼容包
输入命令后,出现下面的错误提示信息:
/home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-linux-gcc:
line 3:
/home/aldrich/arm/arm-linux-gcc-4.3.2/bin/arm-none-linux-gnueabi-gcc:No such file or directory
说是出现这种问题的原因是由于Ubuntu16.04用的是64位的,按以前的解决方法就是使用命令:
sudo apt-get install ia32-libs 装一些32位的库
出现上述界面是因为Ubuntu16.04版本已不支持ia32-libs的软件包,而是使用了lib32ncurses5、lib32z1软件包做为替代,所以在Ubuntu16.04版本当中应该安装执行:
sudo apt-get install lib32ncurses5 lib32z1
待安装完32位的库之后,再使用命令:arm-linux-gcc -v,这一次就成功了,如下图
8、交叉编译工具验证
编译一个hello.c文件
#include<stdio.h>
int main()
{
printf("hello world!\n");
}
使用命令:arm-linux-gcc hello.c -o hello 看是否编译成功
可见成功生成了二进制文件,至此,交叉编译工具就配置完成了。
Ubuntu 16.04上安装arm-linux-gcc-4.4.3 http://www.linuxidc.com/Linux/2016-07/133746.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138771.htm
【原文】
【转】64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解的更多相关文章
- ok6410[001] Ubuntu 16.04[64bit]嵌入式交叉编译环境arm-linux-gcc搭建过程图解
开发PC:Ubuntu16.04.1 开发板:OK6410[飞凌公司出品] 目标:通过GPIO点亮LED ----------------------------------------------- ...
- 【netcore基础】ubuntu 16.04 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动
今天来整理下 netcore 在 linux(ubuntu) 上的运行环境搭建 对应版本 ubuntu 16.04 .net core 2.1 nginx version: nginx/1.10.3 ...
- Ubuntu 16.04 搭建LAMP服务器环境流程
http://www.linuxidc.com/Linux/2016-09/135629.htm [安装mysql时 只需安装 mysql-server无需安装mysql-client] mysql ...
- Ubuntu 16.04 搭建Android开发环境
1.Installing Java sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get inst ...
- Ubuntu 16.04搭建LAMP开发环境
基本设置 1.配置网络环境 管理员给分配了一个静态IP,所以还需要进一步配置网络环境 配置DNS:右上角网络连接->编辑链接->有线连接1->IPv4设置->DNS服务器:20 ...
- Ubuntu 16.04搭建php5.6 Web服务器环境
Ubuntu 16.04默认安装php7.0环境,但是php7目前兼容性并不是很好,如果自行安装php5需要清除php7的已安装包,否则会报错. 移除默认及已安装的PHP包 sudo dpkg -l ...
- Ubuntu 12.04 搭建Android开发环境
Ubuntu 12.04 搭建Android开发环境 2013/7/29 Linux环境下搭建Android开发环境 大部分开发人员可能都在Windows下做开发,可能是感觉在Windows下比较方便 ...
- 在Ubuntu 16.04 安装python3.6 环境并设置为默认
在Ubuntu 16.04 安装python3.6 环境并设置为默认 1.添加python3.6安装包,并且安装 sudo apt-get install software-properties-co ...
- Ubuntu 16.04 安装 Gnome 桌面环境
个人博客链接:Ubuntu 16.04 安装 Gnome 桌面环境
随机推荐
- 1.0 JAVA基础核心概念
JAVA基础知识 转载至:http://www.runoob.com/java/java-variable-types.html 对菜鸟教程进行核心整理: 一.JAVA理论概念 1.基础概念 Java ...
- Qt tableWidget 空单元格 获取选中行行号
bool focus = tableWidget->isItemSelected(tableWidget->currentItem()); // 判断是否选中一行 Int row1 = t ...
- 记录一次redis故障
ResponseError: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persi ...
- Django_csrf
CSRF攻击介绍 CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作.比如说,受害者 Bob 在银行有一笔存款,通过对银行的 ...
- SecureCRT SSH连接一直提示密码错误
这是解决方法: http://www.linuxidc.com/Linux/2016-09/134925.htm
- Node.js中exports,module.exports以及require方法
在Node.js中,使用module.exports.f = ...与使用exports.f = ...是一样的,此时exports就是module.exports的一种简写方式.但是,需要注意的是, ...
- Scrum立会报告+燃尽图(十二月七日总第三十八次):功能测试
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284 项目地址:https://git.coding.net/zhang ...
- Sprint会议2
昨天:准备查找安卓APP开发的有关资料,安装有关软件 今天:自己制作一个安卓小程序,熟悉一下操作 遇到问题:安装遇到问题,环境配置出现问题
- sampleFactory(女娲造人)
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象. package c ...
- DPDK QoS_meter 源码阅读
main.c /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2016 Intel Corporation */ #inclu ...