我改写了韦老师书上的stdio,想用gcc自带的lib,用到了strlen, vssprintf, vsscanf函数,包含了sdtarg.h,stdio.h, string.h,但链接的时候出错了,提示如下:
arm-linux-ld -Tstdio.lds -L/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib -lc -o stdio_elf head.o init.o nand.o serial.o main.o
/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/libc.so.6: file not recognized: File truncated
make: *** [stdio.bin] Error 1
我的Makefile是这么写的:
CC = arm-linux-gcc
LD = arm-linux-ld
AR = arm-linux-ar
OBJCOPY = arm-linux-objcopy
OBJDUMP = arm-linux-objdump
DIR := /work/tools/gcc-3.4.5-glibc-2.3.6
INCLUDEDIR := $(DIR)/include
LIBGCC := $(DIR)/lib/gcc/arm-linux/3.4.5
LIBC := $(DIR)/arm-linux/lib
CFLAGS := -Wall -O2
CPPFLAGS := -I$(INCLUDEDIR)
export CC LD OBJCOPY OBJDUMP INCLUDEDIR CFLAGS CPPFLAGS
objs := head.o init.o nand.o serial.o main.o
stdio.bin: $(objs)
${LD} -Tstdio.lds -L$(LIBC) -lc -o stdio_elf $^
${OBJCOPY} -O binary -S stdio_elf $@
${OBJDUMP} -D -m arm stdio_elf > stdio.dis
%.o:%.c
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
%.o:%.S
${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
clean:
rm -f stdio.bin stdio_elf stdio.dis *.o
请问是哪里出了问题?