首页 > 代码库 > ubuntu下编译交叉编译工具链

ubuntu下编译交叉编译工具链

交叉编译工具链在arm开发中出很重要的位置,开发之前肯定要先有编译器 连接器 汇编器等基础的编译工具。arm体系是一个很复杂的体系,里面的指令有数个版本不同的体系level还有很多自己的特点 ,这就要求编译器也要出几个版本的针对不同的应用。

当然网络上存在很多的编译器的资源,但是作为一个嵌入式开发人员还是要会自己构建出来一个工具链的,做到只能说不想做,不能说做不到,不然真的遇到特殊应用的需要无法作出编译器项目就直接挂了。

整个工具链的编译过程如果采用纯手工的step by step  真的需要几天时间,并且对于意志力的要求会很高,因为每一步都会产生很多的问题。对于整个文件结构,系统环境,需要关联的各种库要求很复杂,尤其是很多库的版本组合是很难确定的。

这里我们用一个先用一个简单的方法区进行,就是利用一个存在的强大脚本crosstool-ng  来编译出工具链

这个脚本可以帮助我们下载需要的文件,做目录的准备等工作。

下载地址是在 http://crosstool-ng.org/  这里想一个ftp站 ,我用的事最新的1.19.0版本

虽然crosstool-ng 可以帮我们自动的下载关联文件,但是对于系统的环境还是我们自己需要搞定的,有几个是系统必须有的
这里我们就直接系统联网直接更新了

#sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs gawk 

这些要安装的工具中  gcj实力面比较复杂的  ,需要手动下载,这里就自己在网络下嗖嗖。

安装步骤

1.到home文件路径下   就是家目录,不是HOME 目录

2.建立真个编译运行的工作目录

#mkdir crosstool

3.拷贝下载脚本压缩文件到工作目录 并解压

#cp ~/下载/tar/crosstool-ng-1.9.0.tar.bz2  ./crosstool   

#tar jxvf crosstool-ng-1.9.0.tar.bz2   

4.建立需要的文件目录结构

进入工作目录

#cd crosstool

#mkdir crosstool-build

#mkdir crosstool-install

#mkdir src

5.进入脚本目录 运行脚本 拷贝依赖文件到工作目录

#cd crosstool-ng-1.19.0 

#./configure  --prefix=~/crosstool/crosstool-install

#make

#make install

#cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi/*   ./

6.必要的修改

#mv crosstool.config .config

7.运行图形界面配置工具编译过程和编译选项

#../crosstool-install/bin/ct-ng menuconfig

会出来一个界面进行选择 y  选择  n不选

几个关键配置

Paths and misc options --->   添(/home/xuww/crosstool/src) Local tarballs directory 存放源码包围之

(/home/yao/crosstool/tools) Prefix directory 编译器安装路径,也就是编译结果生成的编译器存在的位置

Target options  --->

 *** Target optimisations ***

(armv4t) Architecture level

(arm9tdmi) Emit assembly for CPU 

(arm920t) Tune for CPU

编译的线程  回教快编译速度,不宜超过四

Paths and misc options  --->

(2) Number of parallel jobs 

关闭java编译器

 C compiler  --->

[ ] Java 

缺省是开得  中间有星号   按N

设置编译器前缀中的第二个字符  一般是公司名吗

Toolchain options  --->  (xuww) Tuple‘s vendor string  

C compiler  --->(crosstool-NG-${CT_VERSION}-yh) gcc ID string #cd ~/crosstool/crosstool-build

8.开始进入编译的目录 crosstool-build


#cd ~/crosstool/crosstool-build


#../crosstool-install/bin/ct-ng  build

就开始等吧   估计网速可以的换也就一个小时  如果网速慢机器破 就挂机吧   两小时以上那