This是我正在跟进的问题。我有同样的问题,就像regomodo在2011年那样做的那样:
我正在尝试在我的Raspberry Pi上运行一个小程序,而我正在使用ARM本身不支持的运算符:
hello.c:(.text+0x64): undefined reference to `__aeabi_idiv'
hello.c:(.text+0x7c): undefined reference to `__aeabi_idivmod'
我知道我需要链接一个了解分区和修改的库,但是我不能完全理解它(Makefile生活中的新手)。
所以我给了它一种可怜的刺,试着添加-lgcc:
LDFLAGS = -L../lib -lgcc
这不是超级富有成果:
arm-none-eabi-ld: cannot find -lgcc
任何建议都会受到如此赞赏。
[edit1]这是我的makefile的开头:
ARMGNU ?= arm-none-eabi
CPPFLAGS = -I../include
CFLAGS = $(ARCHFLAGS) -Wall -O2 -nostdlib -nostartfiles -ffreestanding
LDFLAGS = -L../lib -lgcc
LIBS = -lpi
答案 0 :(得分:0)
确保libgcc.a
存档位于您在Makefile中指定的路径中。
答案 1 :(得分:0)
我知道已经很晚了,但我遇到了同样的问题,我正在使用ArchLinux,结果发现libgcc.a文件不在
/usr/arm-none-eabi/lib/
和/或其子文件夹,这是我系统中arm-none-eabi编译器的默认安装目录,而libgcc.a库位于
/usr/lib/gcc/arm-none-eabi/(version)
因此,无论您使用何种系统,都应该在默认的lib目录中查找该库。