2012年(366)
分类: 系统运维
2012-04-10 19:20:01
使用crosstool-0.43为移植U-boot-1.2.0
为s3c2410开发板搭建交叉编译环
参考资料
crosstool-howto http://kegel.com/crosstool/current/doc/crosstool-howto.html
build arm-linux toolchain http://www.cnitblog.com/zouzheng/articles/40304.html
用crosstool-0.43源代码编译基于2.6.22.2的内核和gcc-4.1.0glibc-2.3.2的arm9tdmi交叉编译器。
Ubunt11.10 gcc-3.3.6
43
注:编译工具链需要的文件放在 ~/downloads下,也可让crosstool自动下载。
tar –xf crosstool-0.43
把编译工具改为自己编译的gcc-3.3.6
把tarball的位置改为/home/lushuai/downloads
TARBALLS_DIR=$HOME/downloads
把编译产品的位置改为/opt/crosstool
RESULT_TOP=/opt/crosstool去掉eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2.dat-tls` sh all.sh –notest的注释,并在后面加 –unpacked (为什么?)
把eval `cat arm9tdmi.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh –notest注释掉
gedit gcc-4.1.0-glibc-2.3.2.dat
把linux内核版本改为linux-2.6.22.2
注:如果以root权限执行,则会报错说这么做非常危险。
(为什么?)
2. 记得报错说有一个文件,是一个目录下的version.c有错误打开那个version.c一看,全是版本信息,完全是一个""下的字符串,根据标准C语言,字符串间换行,行末一改有换行符,于是在该加换行符的地方加上了换行符\。重新编译,成功。
注:ubuntu11.1 自带的gcc版本为4.6,直接编译会显示gcc bad version,no gcc or version too old。所以需要先编译gcc3.3.6。由于gcc4.6语法规则比较严格,编译4.5以前版本的gcc时出现了各种错误。这个步骤上我废了很大的力 气,先通过ubunt一个镜像源下载安装了gcc-4.2.4,然后各种提示缺文件,一一手动mv、ln以后成功编译了hello word。 然后失望的看到gcc作者在04年给开发者的一封回信,说诸如这类的版本错误,他们已经不准备再重新维护。我只好又用bootstrap编译了 gcc3.6.3,成功,跟之前一样,一通ln、mv之后,编译hello word成功。 具体gcc-3.6的操作过程在我的另一片文章里进行描述。
以后搞开发一定要同步写好文档! 干完活在补文档真心累,各种想不起来,文档各种找不到……晕……