编译uClinux时出错,请大家帮忙

编译uClinux时出错,请大家帮忙

make时显示:
*** 2.4 kernels no longer build correctly with old versions of binutils.
*** Please upgrade your binutils to 2.9.5.
我用的是从uclinux.org下的arm-elf-tools-20030314.sh
uClinux-dist-2006-08-03.tar.bz2
make menuconfig和make dep都没有问题。

请问这个binutils的版本是指交叉编译环境的版本吧,怎么升级呢?
我后来又下了arm-elf-tools-20040427.sh,安装后还是同样的问题?

多谢!

TOP

上面的问题解决了,修改./vendor/config/armnommu/config.arch 中的$CROSS这个变量为正确的交叉编译器的前缀,make时出现如下问题:
entry-armv.S: Assembler messages:
entry-armv.S:1431: Warning: destination register same as write-back base
entry-armv.S:1654: Error: internal_relocation (type: OFFSET_IMM) not fixed up
entry-armv.S:1707: Error: internal_relocation (type: OFFSET_IMM) not fixed up
entry-armv.S:1708: Error: internal_relocation (type: OFFSET_IMM) not fixed up
entry-armv.S:1998: Error: cannot represent SWI relocation in this object file format
make[2]: *** [entry-armv.o] Error 1
make[2]: Leaving directory `/home/zhangliang/tool/embedded/uClinux-dist/linux-2.4.x/arch/armnommu/kernel'
make[1]: *** [_dir_arch/armnommu/kernel] Error 2
make[1]: Leaving directory `/home/zhangliang/tool/embedded/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1
请指点一下怎么解决?

TOP

终于编译成功了,本来打算要放弃的!
上面的问题还是toolchain没选对,我原来下的源码包是uclinxu.org上的uclinux-dist-20060803
这个源码包的$CROSS_COMPILE变量和以前的源码包都不一样了,它的是arm-linux-
所以make是提示第一页我写的错误,是因为找不到arm-linux-gcc,而不是binutils的版本问题,uclinux.org上的arm-elf-tools-20030314的binutils已经是2.10的了,所以应该改$CROSS_COMPILE。
CROSS_COMPILE变量,我总共知道2处定义
1.uClinux-dist/vendor/config/armnommu/config.arch
2.uClinxu-dist/linux-2.x.x/MakeFile
我只改了第一出,所以没编译出来,换了个gcc3.4.0的toolchain,也没有成功,在极度郁闷的情况下我就再没试,而是又到uclinux.org去下了个uclinux-dist-20051110的源码包。
这个版本不用改$CROSS_COMPILE,我用uclinux.org上的arm-elf-tools-20030314
make时就发生的第2楼的问题,我又试了arm-elf-tools-20040305的toolchain,还是一样失败。于是我在绝望的情况下又试了arm-elf-tools-20040427,奇迹发生了,我竟然编译成功了,在skyeye上跑了一下,也没问题。
其中后2个toolchain在http://opensrc.sec.samsung.com/download.html上有下载。

希望我的失败经验对大家有帮助,别像我郁闷了2天,把星期6,日都浪费了。
还有以上3个.sh的toolchain在fc5下都需要用vi,emacs(gedit好像不行)打开,在tail后添加 +n
才可以运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值