下面是《
ARM
嵌入式
Linux
系统开发从入门到精通》上的交叉编译环境片段,这里摘录以作为以后参考方便。
书上介绍了
3
种构建交叉工具链的方法,具体介绍请参阅原书。我这里采用的是通过
crosstool
脚本工具来实现一次编译生成交叉编译工具链的。
所需安装包资源:
crosstool-0.42.tar.gz; linux- 2.6.10 .tar.gz; binutils-2.15.tar.bz2; gcc-3.3.6.tar.gz; glibc-2.3.2.tar.gz; glibc-linuxthreads-2.3.2.tar.gz; linux-libc-headers-2.6.12.0.tar.bz2
。并存放到
/home/username/downloads
下。具体步骤如下:
(1)
解压
crosstool-0.42.tar.gz
到
/home/username/
#tar �Cxvzf crosstool-0.42.tar.gz
(2)
建立脚本文件,在
crosstool-0.42
文件夹下有个
demo-arm.sh
脚本,可以作为参考,也可以拷贝一份并做修改
# cp demo-arm.sh arm.sh
用
vi
根据具体情况修改
arm.sh
,修改部分如下:
TARBALLS_DIR=/home/username/downloads
Eval ‘cat arm.dat gcc- 3.3.6 -glibc-2.3.2dat’ sh all.sh �Cnotest
(3)
建立配置文件,在
crosstool-0.42
文件夹下有
arm.dat
和
gcc- 3.3.6 -glibc-2.3.2dat
【与上面修改后的一致】两个配置文件。
arm.dat
中修改:
TARGET=arm-linux-
。
gcc-3.3.6-glibc-2.3.2dat
中主要修改
LINUX_DIR=linux-2.6.10
(4)
执行脚本,编译生成工具。在
crosstool-0.42
目录下,
#./arm.sh
按照书上的叙述,这时候就可以生成新的交叉编译工具。但是我最初是用
root
编译的失败后,再清除环境后用普通用户编译,结果是创建
opt/crosstool
目录时没有权限。最后
google
了一把得出结论:在编译的时候最好用普通用户身份来做。
(5)
最后一步,添加环境变量:在
etc/bashrc
文件的最后添加
export PATH=/opt/crosstool/gcc- 3.3.6 -glibc-2.3.2/arm-linux/bin:$PATH
不能用也没办法啊,最后还是下载了一个制作好的工具链安装包
eldk
。
(1)
挂载光驱
(2)
创建安装目录,并安装
# mkdir /home/ELDK
# ./install -d /home/ELDK/
(3)
设置环境变量
编辑自己的帐户目录下的
.bashrc (
例如:
/home/xyz/)
中加入下面内容
CROSS_COMPILE=arm-linux-
$PATH=$PATH:/home/ELDK/usr/bin:/home/ELDK/bin
export CROSS_COMPILE PATH
保存。然后执行
$source .bashrc