标签:嵌入式操作系统 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,修改如下
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:嵌入式操作系统 linux gcc 脚本 s3c2440
原文地址:http://blog.csdn.net/cowena/article/details/48153131