u-boot编译出错() whereas u-boot uses software FP

/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/lib/gcc/arm-linux/4.1.0 -lgcc \
                        -Map u-boot.map -o u-boot
arm-linux-ld: ERROR: /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/lib/gcc/arm-linux/4.1.0/libgcc.a(_udivdi3.o) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/lib/gcc/arm-linux/4.1.0/libgcc.a(_udivdi3.o)
arm-linux-ld: ERROR: /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/lib/gcc/arm-linux/4.1.0/libgcc.a(_clz.o) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/lib/gcc/arm-linux/4.1.0/libgcc.a(_clz.o)
make: *** [u-boot] 错误 1

以上错误为编译器的软浮点问题,解决办法就是去掉makefile里面的浮点相关编译,建议你直接用3.4.5编译,这个问题就解决了。或者去掉"$CPU/cpu_type/config.mk"文件中的 -msoft-float

虽然是从网上下来的解决方法,好多的网友提示上面这种方法是不行的,主要在网上的各位网友给的解决方法都是在不同的版本给出不同的解决方法,说句实话这是最不好解决的,我为了着个问题在原来的基础上重新编译了一个gcc 3.3.6的版本,耗费了几个小时,原来的是gcc 3.4.5,gcc4.1.0.总共是三个编译器.着中方法还凑巧,不出现了FP的问题了. (选择gcc 3.4.5-libc-2.3.2 u-boot 1.1.6),反正也选择学习嵌入式了,不得不学

你可能感兴趣的:(File,gcc,merge,FP,makefile,编译器)