完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
写的裸奔程序中,用到vsprintf()函数,无法链接成功。 最初是使用vfprintf()函数的,编译链接都没问题,可是代码过大(768MB),gg以后得知,不是向文件输出的话,应该使用vsprintf(),但是替换函数后,链接出错了。 请教一下是什么问题呐? 我想可能是vsprintf()需要的什么库没有链接进来吧,但是不知道是哪个库。 Makefile如下: objs1:= output/Head.o output/Init.o output/MMU.o output/Nand_K9F2G08U0B.o output/Interrupt.o objs2:= output/Test.o output/TFTLCD.o output/Common.o output/UART.o objs := $(objs1) $(objs2) lib1 := /home/long/gcc-3.4.5-glibc-2.3.6/lib/gcc/ARM-linux/3.4.5/ lib2 := /home/long/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/ Test.bin : $(objs) arm-linux-ld -TTest.lds -L$(lib1) -o output/Test.elf $^ $(lib2)libc.a -lgcc arm-linux-objcopy -O binary -S output/Test.elf $@ arm-linux-objdump -D -m arm output/Test.elf > output/Test.dis output/%.o : source/%.c arm-linux-gcc -Wall -O2 -c -o $@ $< output/%.o : source/%.s arm-linux-gcc -Wall -O2 -c -o $@ $< clean: rm -f output/Test.elf output/Test.dis output/*.o Test.bin 函数代码如下: void UART_Printf( unsigned int iUARtiD, const char *pFmt, ... ) { S32 i; S8 UART_TxBuffer[128]; va_list ap; va_start( ap, pFmt ); vsprintf( UART_TxBuffer, pFmt, ap ); va_end( ap ); for( i = 0 ; UART_TxBuffer != ' |