【发布时间】:2011-07-04 22:23:14
【问题描述】:
我的情况很奇怪。每次我尝试编译我的 arm 项目(LPC2378,codesourcery arm-none-eabi-gcc-4.5.1)时,我在链接时都会遇到同样的错误
/media/data/Projects/arm/uart/main.c:39: undefined reference to `__aeabi_uidiv'
/media/data/Projects/arm/uart/main.c:40: undefined reference to `__aeabi_uidiv'
有问题的代码如下所示:
U0DLL = ((((PLLCFG & 0x7FFF) + 1) * F_OSC) / ((((PLLCFG & (0xFF << 16)) >> 16) + 1) * ((CCLKCFG & 0xFF) + 1) * 8 * BAUD * 1)) % 256;
U0DLM = ((((PLLCFG & 0x7FFF) + 1) * F_OSC) / ((((PLLCFG & (0xFF << 16)) >> 16) + 1) * ((CCLKCFG & 0xFF) + 1) * 8 * BAUD * 1)) / 256;
我已经四处搜索,这可能是由 AFAICT 引起的,没有使用 lgcc 和 lc 选项作为 LD。我已经解决了,但错误仍然存在。
完整的项目可以是found at my github repo。
如果有人可以提供帮助,我们将不胜感激。干杯。
【问题讨论】:
-
链接器标志的顺序有时很重要,试试:
$(LD) -o main.out startup.o target.o fio.o irq.o main.o $(LDFLAGS) -
Banthar 你是明星。多年来,我一直在努力解决问题,我从谷歌上搜索到的最好的结果是错误报告,最好的是 RMS 6 年前。
-
Banthar:那么最好把链接器标志放在最后吗?
-
@Regomo:您必须将 libraries 放在您自己的目标文件之后,因为缺少符号的解析方式。所有其他标志可以按任何顺序出现。