杭州开发网站,2018主流网站建设语言,网站建设易网拓,dedecms 资源类网站模板#xff08;一#xff09;交叉编译器的简介
#xff08;1#xff09;本地编译
在了解交叉编译之前我们首先介绍一下另一个概念#xff1a;本地编译 之前所做的C开发属于本地编译#xff0c;即在当前PC下#xff08;x86的CPU下#xff09;#xff0c;直接编译出可以运…一交叉编译器的简介
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/profile6检查是否将路径加入到PATH # echo $PATH显示的内容中有/opt/FriendlyARM/toolschain/4.5.1/bin说明已经将交叉编译器的路径加入PATH交叉编译环境变量添加成功。 7安装32位库兼容包
sudo apt-get install lib32ncurses5 lib32z18测试是否安装成功 此时你可以在控制台输入arm-linux-gcc -v 如果安装成功将会输出 arm-linux-gcc的版本号。
四问题记录
安装完成提示没有文件或者目录
/bin/bash: /root/tool/arm-linux-gcc-4.5.1/bin/arm-linux-gcc: 没有那个文件或目录需要安装下面的程序
sudo apt-get install lsb-core再次测试
rootl-virtual-machine:~/uboot/u-boot-2009.11# arm-linux-gcc
arm-linux-gcc: no input files