建立arm-linux交叉工具链 crosstool-ng
测试环境:ubuntu 10.4,10.10,11.4,11.10均无压力。最近被这个arm-linux交叉编译器搞了5天,都快被崩溃了。终于成功了,好开心,于是再做一遍,没问题,在这里记录以下流程:
1.确定好自己机子于开发板
tool:crosstool-ng1.93
host:ubuntu 10.04.3.LTS
target:S3Carm9
(前3天我一直用fedora来安装,最后真的不行了,于是换成ubutu,现在知道编译过程与主机上的GCC版本和GDB版本以及BINUTILS版本其实是没有关系的。它提示你ld is too old ,是因为你下载的工具的版本不对,清自己核对自己下载的版本跟下面提到的vim .config里面的规定。)
2.
$sudo passwd -l (设置root密码
set the unix password:
reset the unix password:
scuess!
(切换到root用户下,安装相关工具。以下所有操作都在root用户下,以后编译前请su -l ,切换到root下面才编译)
3.下载这些工具包,通常有error的时候,很多是因为下面安装包不完全,如果下面安装包有找不到的,那么可能你的ubutu版本对不上,或者你的ubutu版本出现了点小错误(我有一天晚上就是因为cvsd找不到,然后不管了,照样安装,导致10多分钟后才提示gcc编译不过,然后从新下载)
apt-get install bison flex texinfo automake libtool cvs patch
apt-get install libncurses5*
apt-get install aria2 curl gcj g++ subversion cvsd gawk
apt-get install glibc*
4.下载安装用到的工具包:(请千万要下完整!特别是那个gcc,我之前的gcc原来下了一半然后中断了,只有26M,就直接拿来用了,一直找不到问题所在,后来多次查看log,才知道原来一直是gcc编译错误,于是从新下载gcc)
4.下载安装用到的工具包:(请千万要下完整!特别是那个gcc,我之前的gcc原来下了一半然后中断了,只有26M,就直接拿来用了,一直找不到问题所在,后来多次查看log,才知道原来一直是gcc编译错误,于是从新下载gcc)
binutils-2.19.1.tar.bz2 | dmalloc-5.5.2.tgz
duma_2_5_15.tar.gz | expat-2.0.1.tar.gz
gcc-4.3.2.tar.bz2 | gdb-6.8.tar.bz2
glibc-2.9.tar.bz2 | glibc-ports-2.9.tar.bz2
gmp-4.3.2.tar.bz2 | libelf-0.8.13.tar.gz
linux-2.6.33.7.tar.bz2 | mpfr-2.4.2.tar.bz2
ncurses-5.7.tar.gz | Sstrip.c
一定要全部下载好,要不然以后的编译过程中,速度很慢还存在潜在的危险,说不定哪个包自动下载不下来,编译错误,那连原因也找不到。(我就试过这样)
5.处理一个小问题,具体我也不清楚。见大神网站:
http://hi.baidu.com/caicry/blog/item/f306db639c4281680c33fa1b.html
cd /usr/bin
mv mawk mawk.bak
ln -s gawk mawk
cd /home
6.安装crosstool-ng,安装完之后 ct【tab】【tab】后会出现ct-ng,那么你安装成功了!恭喜第一步过了!
mkdir crosstool-ng
cd crosstool-ng
mkdir src
mv /(下载工具包的目录) /home/crossrool-ng/src 这里千万不要变成/home/crossrool-ng/src/ (
mv /(下载工具包的目录) /home/crossrool-ng/src 这里千万不要变成/home/crossrool-ng/src/ (