以《ARM嵌入式linux系统开发从入门到精通》书中内容整理得
交叉编译工具链的构建有两种方法比较常用:
1分步构建(比较麻烦)
2用Crosstool工具构建
Crosstool-0.42.tar.gz
| http://Kegel.com/crosstool
| linux-2.6.10.tar.gz
| ftp.kerel.org
| binutils-2.15.tar.bz2
| ftp.gnu.org/binutils
| gcc-3.3.6.tar.gz
|
| glibc-2.3.2.tar.bz2
|
| glibc-linuxthreads-2.3.2.tar.gz
|
| linux-libc-headers-2.6.12.0.tar.bz2
|
| 上述这些源代码可以在我的爱问上下载爱问下载;(有户名为:zhangliang)
-----------------------------------------------------------------------------------------
以上工作完成后开始:
进入终端。输入“su”(switch user切换用户的意思,默认切换到root权限下),新建/home/mike/downloads目录,将上表的源代码放到这里。在mike中解压缩crosstool-0.42.tar.gz,命令如下:
#cd /home/mike
#tar -xvzf crosstool-0.42.tar.gz
---------------------------------------------------------------------------
2建立脚本文件
#cp demo-arm.sh arm.sh demo-arm.sh在解压后的文件件中,目的是生成一个以它为模板的arm.sh
#vi arm.sh
进入后要修改如下:
TARBALLS-DIR=/home/mike/downloads 定义工具链源码所在位置
RESULT-TOP为工具链安装目录
eval 'cat arm.dat gcc-3.3.6-glibc-2.3.2.dat ' sh all.sh --notest
3建立配置文件
在arm.sh脚本中要注意arm.dat和gcc-336glibc232dat两个文件。
用cat参看arm.sh并修改TARGET=arm-linux-
还要修改gccdat文件中GCC-DIR=gcc-3.3.6
4执行脚本
#cd crosstool-0.42
#./arm.sh
需要经过数小时漫长编译,会在/opt/crosstool目录下生成新的交叉编译工具,其中有我们要用的arm-linux-gcc
5添加环境变量
将生成的编译工具的路径添加到环境变量PATH上去。在系统/etc/bashrc文件的最后添加下面一行:export PATH=/opt/crosstool/gcc-3.3.3-glibc-2.3.2/arm-linux/bin:$PATH
以上就构建完成了交叉编辑工具链,可以测试一下这个工具链,编一个小C程序,用法和gcc完全一样。 |