C 我如何链接正确的库以便u aeabi_idiv和u aeabi_idivmod工作?

C 我如何链接正确的库以便u aeabi_idiv和u aeabi_idivmod工作?,c,makefile,arm,raspberry-pi,C,Makefile,Arm,Raspberry Pi,这是我正在跟进的问题。我的问题与2011年regomodo在该线程中的问题相同: 我正在尝试在我的Raspberry Pi上运行一个小程序,我使用的是ARM本机不支持的运算符: hello.c:(.text+0x64): undefined reference to `__aeabi_idiv' hello.c:(.text+0x7c): undefined reference to `__aeabi_idivmod' 我知道我需要链接一个知道除法和修改的库,但是我不能让它正常工作(Makef

这是我正在跟进的问题。我的问题与2011年regomodo在该线程中的问题相同:

我正在尝试在我的Raspberry Pi上运行一个小程序,我使用的是ARM本机不支持的运算符:

hello.c:(.text+0x64): undefined reference to `__aeabi_idiv'
hello.c:(.text+0x7c): undefined reference to `__aeabi_idivmod'
我知道我需要链接一个知道除法和修改的库,但是我不能让它正常工作(MakefileLife的新手)

所以我给了它一种可悲的刺激,试着添加-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 

请确保
libgcc.a
存档文件位于您在Makefile中指定的路径中。

我知道已经很晚了,但我遇到了相同的问题,我使用的是ArchLinux,结果发现libgcc.a文件不在

/usr/arm-none-eabi/lib/
和/或其子文件夹,这是我的系统中arm none eabi编译器的默认安装目录,而不是libgcc

/usr/lib/gcc/arm-none-eabi/(version)

因此,无论您使用的是什么系统,您都应该在默认的lib目录中查找该库。

您的
libgcc.a
归档文件位于何处,您的makefile是什么样子的?是的!这就是我要找的词。我正在尝试设置一个libgcc.a存档-我可以从某处下载.a文件吗?所有链接似乎都已断开。更新:在垃圾箱中找到libgcc.a的副本,将其移动到我的libs文件夹中。现在我正在更改生成文件。是的!libgcc.a绝对是问题所在:不在路径中!非常感谢你。现在这感觉像是个愚蠢的问题,但你绝对是让我走上正轨的关键。想要做出一个答案,这样我就可以给它一个复选标记吗?gcc在调用ld时知道它是从哪里产生的,在哪里可以找到东西(libgcc.a),但ld不知道,所以对于ld,您必须在.a或a-L中显式提供路径,或者(呻吟)只使用gcc进行链接。。。