我正在使用lpcXpresso进行嵌入式系统开发。它使用修改后的Eclise作为其IDE,以及MCU C编译器和MCU链接器。
我导入了一些eisting代码并且有一些链接器错误,我很快就解决了。但最后一个让我难过:
undefined reference to `_fini'
我希望这意味着我的一些代码会调用一个名为fini()
的函数 - 对吗?
除了我没有一个(很有人认为有InitialzeTracingSubsystem()
)。而且我不相信链接器会截断名称,因为它早先曾抱怨_getimeofday
。
知道我做错了吗?
答案 0 :(得分:3)
您没有显示您的命令行。我猜你已经直接使用了ld
(链接器)。
不要那样做。相反,始终使用编译器驱动程序进行链接。
_init
和_fini
通常是libc
的一部分,或者是随附的C运行时启动文件(crt0.o
,crtend.o
等)它
编译器驱动程序将完成链接它们所需的魔术。链接器不会。