编译的时候,遇到了一些问题,我一开始用的交叉编译器版本是arm-linux-gcc3.4.1,出现了网络频现的软浮点问题,如下:
arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_udivsi3.oS) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_udivsi3.oS)
arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_divsi3.oS) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_divsi3.oS)
arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_umodsi3.oS) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_umodsi3.oS)
arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_modsi3.oS) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_modsi3.oS)
arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_dvmd_lnx.oS) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_dvmd_lnx.oS)
arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_lshrdi3.oS) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_lshrdi3.oS)
arm-linux-ld: ERROR: /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_ashldi3.oS) uses hardware FP, whereas u-boot uses software FP
arm-linux-ld: failed to merge target specific data of file /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/libgcc.a(_ashldi3.oS)
于是更换编译器为arm-linux-gcc4.3.2,并把config.mk文件还源后,直接make,这时是会出现问题的,如下:
arm-linux-ld: ERROR: Source object init.o has EABI version 0, but target lcd_elf has EABI version 5arm-linux-ld: failed to merge target specific data of file init.o
arm-linux-ld: ERROR: Source object nand.o has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file nand.o
arm-linux-ld: ERROR: Source object interrupt.o has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file interrupt.o
arm-linux-ld: ERROR: Source object serial.o has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file serial.o
arm-linux-ld: ERROR: Source object lcddrv.o has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file lcddrv.o
arm-linux-ld: ERROR: Source object lcdlib.o has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file lcdlib.o
arm-linux-ld: ERROR: Source object main.o has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file main.o
arm-linux-ld: ERROR: Source object lib/libc.a(printf.o) has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file lib/libc.a(printf.o)
arm-linux-ld: ERROR: Source object lib/libc.a(string.o) has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file lib/libc.a(string.o)
arm-linux-ld: ERROR: Source object lib/libc.a(vsprintf.o) has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file lib/libc.a(vsprintf.o)
arm-linux-ld: ERROR: Source object lib/libc.a(ctype.o) has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file lib/libc.a(ctype.o)
arm-linux-ld: ERROR: Source object lib/libc.a(muldi3.o) has EABI version 0, but target lcd_elf has EABI version 5
arm-linux-ld: failed to merge target specific data of file lib/libc.a(muldi3.o)
其实这个问题很简单,只是自己忽略了而已。这是因为更换编译器后,未进行清除才导致的。即:执行make clean 后,再make,就可编译成功了!