(一)交叉编译器的简介

(1)本地编译

在了解交叉编译之前我们首先介绍一下另一个概念:本地编译
之前所做的C开发属于本地编译,即在当前PC下(x86的CPU下),直接编译出可以运行的程序(或者库文件),其直接在当前的环境(即x86的CPU下),此时的编译称为本地编译,即在当前平台下,编译出来的程序,只能放到当前平台下运行。

(2)交叉编译(cross compile)

交叉编译和本地编译为相对应的概念。所谓的交叉编译就是在一种平台上编译出来的程序,是放到别的平台环境运行,即编译的环境和运行的环境不一样,属于交叉的,或称为cross。交叉编译的概念,主要使用在嵌入式开发当中。

(二)为何要有交叉编译

之所以需要有交叉编译,是因为嵌入式系统中的资源太少,即交叉编译出来的程序,所要运行的目标环境资源有限,所以很难进行直接的本地编译。
最常见的情况是:在进行嵌入式开发时,比如目标平台(嵌入式开发板)为最大主频200MHz的ARM的CPU,加上RAM、Nand Flash等等。在如此相对比较紧张的硬件资源的前提下,加上已经运行了嵌入式Linux程序,是很难直接去进行本地编译的,因为编译,开发会消耗较多的CPU、内存、硬盘等资源,而嵌入式开发板上的资源,除去嵌入式(Linux)系统运行部分,没太多剩余的资源供本地编译。

(三)如何搭建交叉编译器

(1)获得源码: arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz

(2)拷贝源码到Ubuntu系统中/driver(创建的一个目录)的文件夹下.

(3)进入存放目录,解压缩到根目录

tar  -xzvf  arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz  -C  /

注:-C选项制定了解压路径,指定在 / ,解压出来后的目录名为opt,所以会存放在/opt下。

(4)修改环境变量
把交叉编译器的路径加入到PATH,PATH 决定了shell将到哪些目录中寻找命令或程序

方法一:修改/etc/bash.bashrc(为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取)文件#vim /etc/bash.bashrc在最后加上:export  PATH=$PATH: /opt/FriendlyARM/toolschain/4.5.1/bin
方法二:修改/etc/profile文件(为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置):
#vim /etc/profile
增加路径设置,在末尾添加如下,保存/etc/profile文件:
export  PATH=$PATH: /opt/FriendlyARM/toolschain/4.5.1/bin
方法三:# export  PATH=$PATH: /opt/FriendlyARM/toolschain/4.5.1/bin注:临时保存,重启失效

(5)立即使新的环境变量生效,不用重启电脑:

 对应方法一:#source /root/.bashrc对应方法二:# source /etc/profile

(6)检查是否将路径加入到PATH:

   # echo  $PATH

显示的内容中有/opt/FriendlyARM/toolschain/4.5.1/bin,说明已经将交叉编译器的路径加入PATH,交叉编译环境变量添加成功。
(7)安装32位库兼容包

sudo  apt-get install  lib32ncurses5  lib32z1

(8)测试是否安装成功
此时你可以在控制台输入:arm-linux-gcc -v ,如果安装成功将会输出 arm-linux-gcc的版本号。

(四)问题记录

  1. 安装完成提示没有文件或者目录
/bin/bash: /root/tool/arm-linux-gcc-4.5.1/bin/arm-linux-gcc: 没有那个文件或目录

需要安装下面的程序

sudo apt-get install lsb-core

再次测试:

root@l-virtual-machine:~/uboot/u-boot-2009.11# arm-linux-gcc
arm-linux-gcc: no input files

linux安装交叉编译环境相关推荐

  1. Zedboard学习(二):zedboard的Linux下交叉编译环境搭建

    环境准备 首先肯定是要下载xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件,这是官方提供的linux下交叉编译链安装文件,下载地址为:https://p ...

  2. arm linux gcc 编译,Linux arm-linux-gcc交叉编译环境配置

    Linux下的arm-linux-gcc交叉编译环境安装 安装arm-linux-gcc (1) 打开终端,使用sudo命令进入从超级管理员: sudo su 输入超级管理员密码. (2) 使用cd命 ...

  3. linux 建立交叉编译环境变量,ARM-Linux-gcc-4.4.3交叉编译环境终于搭建

    Linux交叉编译环境终于搭建完成具体步骤: 0.软件请到友善之臂的官网下载 1.解压 tar zxvf arm-linux-gcc-4.4.3-20100728.tar.gz -C/(别make了, ...

  4. Arch Linux安装桌面环境

    Xfce是众多Linux桌面系统中的一个,以小巧占用系统资源少而著称,本文就带领大家在Arch Linux中安装Xfce桌面系统.前提是你已经安装好了Arch Linux系统. 1.更新系统安装包 在 ...

  5. Linux安装LAMP环境各种问题

    1.  查看linux下是否已经搭建lamp环境 使用的yum安装,它可以帮助我们解决软件自己的依赖关系.我还在后面加了postgresql数据库如果不需要的话可以去掉和postgresql的参数.命 ...

  6. linux安装中文环境,[Linux]Ubuntu 7.04 中文环境的安装

    第一步,要明确:我们所有做的一切,都必须是在root用户下才能完成的.所以,请务必使用root登陆.这里我插入一点root的知识.新装系统后,再终端设置root 密码.命令为 su passwd ro ...

  7. linux安装node环境

    1.服务器node环境安装 nvm安装 nvm是目前主流的node版本管理工具,可以快速安装node环境不需要下载包安装包,配置环境等一下一系列的繁琐步骤 执行以下命令 curl -o- https: ...

  8. linux 安装 tao环境,linux环境安装hbase------不一定需要hadoop

    hbase是分布式的,面向列(族)的数据库, 很常用, 网上介绍一大堆.本文说说在linux环境中安装hbase. 一般来说,都是需要先安装hadoop, 再安装hbase. 但是, 为了简便起见, ...

  9. linux安装PHP环境

    在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件外,还要安装一些相关工具,设置必要参数.而且,如果要使用PHP扩展库,还要进行编译.安装之前要准备如下安装包 ...

最新文章

  1. 阿里云查看mysql版本_查看mysql版本
  2. 基于Spring Boot + Dubbo的全链路日志追踪(一)
  3. python 线型_CCF 202006-1 线性分类器 python
  4. Eclipse GBK批量转UTF-8插件(转)
  5. linux标准I/O——格式化输出
  6. 名副其实!华为天才少年身份曝光!
  7. python docker库
  8. 用Docker快速搭建一个博客网站,很简单的嘛~
  9. webapp检测手机运动方向,可实现手机摇一摇功能的触发
  10. 跟锦数学2017年01月
  11. 阅读SQL语言艺术实践一
  12. 【BZOJ2095】[Poi2010]Bridges 动态加边网络流
  13. 如何在Word中打印奖状?按下这个键,就可以批量制作、打印奖状
  14. java并发编程电子书免费送???
  15. 维基百科Wikipedia镜像网站列表
  16. (百度贴吧发帖)html5,百度贴吧怎么发帖子
  17. 串口转 HID 键盘鼠标芯片 CH9329
  18. 实验3-5 查询水果价格
  19. 这是一场 DDD 的探索之旅
  20. 连接 MySql 数据库

热门文章

  1. 企业微信H5_网页jssdk调用 config和agentconfig的区别
  2. 微信小程序 AppID和AppSecret的获取方式
  3. Linux下启动/关闭Oracle服务和 oracle监听启动/关闭/查看状态
  4. MP 启动注入 SQL 原理分析
  5. VBA 用 Environ 获取系统环境变量
  6. angular图片上传
  7. .class和getClass()的区别
  8. 对数周期天线hfss建模_HFSS也有金手指,FADDM招式详解
  9. mysql heartbeat 慢_Mysql 慢日志优化分析方法
  10. pypi.python.org_在Pypi上发布自己的Python包