linux安装交叉编译环境

(一)交叉编译器的简介
(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
  • 6
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值