主题 : 如何使用arm-linux-gcc自带的lib 复制链接 | 浏览器收藏 | 打印
勿在浮沙筑高台
级别: 新手上路
UID: 35854
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
贡献值: 0 点
综合积分: 34 分
注册时间: 2011-01-07
最后登录: 2015-05-12
楼主  发表于: 2011-10-21 13:26

 如何使用arm-linux-gcc自带的lib

我改写了韦老师书上的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

请问是哪里出了问题?