码迷,mamicode.com
首页 > 其他好文 > 详细

TQ2440 学习笔记—— 6、自己制作工具链

时间:2015-09-01 10:51:48      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:嵌入式操作系统   linux   gcc   脚本   s3c2440   

(韦东山——嵌入式Linux 应用开发完全手册)

自己编译工具链:

如果要基于gcc 和glibc 来制作工具链,可以使用crosstool 来进行编译;

如果要基于gcc 和uClibc 来制作工具链,可以使用buildroot 来进行编译。

uClibc 比 glibc 小,在已有的接口上是兼容的,更适用于嵌入式操作系统。但是uClibc 并没有包括glibc 中的所有接口实现,因此有些应用可能在uClibc 中不能编译。

基于这个原因,采用gcc ,当对系统比较熟悉后,或者在开发资源很瘦限制的产品时,可以使用uClibc。


使用crosstool -0.43.tar.gz 工具来编译工具链,它运行时,会自动从网上下载源码,然后编译,当然我们也可以自己下载源码,在运行crosstool。crosstool 官方网站为http://kegel.com/crosstool/,可以参考其中的crosstool-how to .html 选择、配置、编译工具链。


步骤:

一、修改crosstool 脚本技术分享

a、执行以下命令进行解压缩

$ tar xzf crosstool-0.43.tar.gz    【为.gz文件,使用gzip方式处理,即用xzf】


b、打补丁

把它复制到crosstool 的补丁目录下:

命令  $ cp glibc-2.3.6-version-info.hr_err.patch  crosstool-0.43/patchs/glibc-2.3.6/

然后将执行crosstool-0.43 目录下的demo-arm-softfloat.sh 脚本来进行编译,内容如下:

注意:关于VI 中显示行号的方法:在命令行模式下(也有称为尾行模式的)

1、显示当前行行号,在VI的命令模式下输入——:nu

2、显示所有行号,在VI的命令模式下输入——:set nu

技术分享


第7行的TARRBALLS_DIR 表示源码存放位置。

第8行的 RESULT_TOP 表示编译结果存放的位置。

第10行的GCC_LANGUAGES 表示制作出来的工具链支持C、C++语言,如果要支持其他语言,可以在里面增加。比如下面一行表示支持Java:GCC_LANGUAGES = " c, c++,java"

第26~29行可知,可以选择多种gcc、glibc 版本。我们选择gcc-3.4.5 和 glibc-2.3.6。 

执行demo-arm-softfloat.sh 脚本后,它将根据arm-softfloat.dat 、gcc-3.4.5-glibc-2.3.6.dat 这两个文件中定义的环境变量调用all.sh 脚本进行编译。

gcc-3.4.5-glibc-2.3.6.dat  文件指明了要下载或使用的文件。


需要更改demo-arm-softfloat.sh、arm-softfloat.sh、all.sh 这3个文件。

1、修改demo-arm-softfloat.sh,修改后的内容如下:

技术分享

2、修改arm-softfloat.dat,修改如下

 TARGET=arm-softfloat-linux-gnu 改为:  TARGET=arm--linux
它表示编译出来的工具样式为arm-linux-gcc、arm-linux-ld等,这是常用的名字。
3、修改all.sh。
如果现在就执行demo-arm-softfloat.sh ,最终结果将存放在/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux 目录下。修改all.sh可以改变目录。

比如把它改为/work/tools/gcc-3.4.5-glibc-2.3.6
 PREFIX=${PREFIX-$RESULT_TOP/$TOOLCOMBO/$TARGET}
改为

 PREFIX=${PREFIX-$RESULT_TOP/$TOOLCOMBO}

二、编译、安装工具链
执行以下命令:
$ cd crostool-0.43/
./ demo-arm-softfloat.sh
编译2、3个小时后,将在/work/tools/目录下生成gcc-3.4.5-glibc-2.3.6 子目录,交叉编译器、库、头文件都包含在里面。设置PATH 环境变量即可使用。
使用下面命令测评以下:
$ arm-linux-gcc -v

按照流程走了一遍,还是挺有收获的!完毕!


版权声明:本文为博主原创文章,未经博主允许不得转载。

TQ2440 学习笔记—— 6、自己制作工具链

标签:嵌入式操作系统   linux   gcc   脚本   s3c2440   

原文地址:http://blog.csdn.net/cowena/article/details/48153131

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!