您的位置:首页 > Web前端

解决undefine reference to '__aeabi_idiv' undefine reference to '__aeabi_idivmod'错误

2016-01-02 23:48 330 查看
undefine reference to '__aeabi_idiv'

undefine reference to '__aeabi_idivmod'

我的交叉编译器的版本是arm-none-linux-gnueabi/4.3.2

makefile如下

CC = arm-linux-gcc

LD = arm-linux-ld

AR = arm-linux-ar

OBJCOPY = arm-linux-objcopy

OBJDUMP = arm-linux-objdump

LIB :=-lgcc -L/usr/local/arm/4.3.2/lib/gcc/arm-none-linux-gnueabi/4.3.2

INCLUDEDIR := $(shell pwd)/include

CFLAGS := -w

CPPFLAGS := -nostdinc -I$(INCLUDEDIR)

export CC AR LD OBJCOPY OBJDUMP INCLUDEDIR CFLAGS CPPFLAGS

objs := start.o clock.o main.o sdram.o nand.o huitu_main.o lib/libc.a malloc/memory.a dev/dev.a chinesechess/chinesechess.a

lcd.bin: $(objs)

${LD} -Tlcd.lds -o lcd.elf $^ $(LIB)

${OBJCOPY} -O binary -S lcd.elf $@

${OBJDUMP} -D lcd.elf > lcd.dis

.PHONY : lib/libc.a

lib/libc.a:

cd lib; make; cd ..

chinesechess/chinesechess.a:

make -C chinesechess all

malloc/memory.a:

make -C malloc all

dev/dev.a:

make -C dev all

%.o:%.c

${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

%.o:%.S

${CC} $(CPPFLAGS) $(CFLAGS) -c -o $@ $<

clean:

make clean -C chinesechess

make clean -C lib

make clean -C dev

make clean -C malloc

rm -f *.elf *.dis *.o *.bak *.a

解决方法:

需要在连接的时候链接这个LIB
:=-lgcc -L/usr/local/arm/4.3.2/lib/gcc/arm-none-linux-gnueabi/4.3.2

然后进行编译的时候会提醒没有raise函数,自己写个这个函数like this

int raise(int signum)

{

return 0//什么都不干

}

再次编译就会通过了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: