在使用gnu arm-none-eabi-ld
关联程序时,我得到了一些未定义的引用,例如:__aeabi_uidiv
和memcpy
,并找到它们所在的位置,我使用了ar t libc.a
和{{1} }。我在libc.a中找到了ar t libgcc.a
,但我找不到memcpy
。列出所有库是相当不方便和耗时的,我想知道在库中搜索.o文件的最佳方法是什么?我应该尽可能多地向我的链接器添加库并留下找工作的工作,还是有一些魔术网站在输入未定义的引用之后会告诉我哪个库可以找到它?顺便说一句。有谁知道我在哪里可以找到__aeabi_uidiv
?
答案 0 :(得分:1)
使用gnu
关联程序时arm-none-eabi-ld
那就是你的问题。
通常,在UNIX上,不应使用ld
链接任何用户级程序。您应该使用适当的编译器驱动程序(例如arm-none-eabi-gcc
C
或arm-none-eabi-g++
C++
)来执行链接。
编译器驱动程序将自动向链接添加适合此特定编译器的库。在这里,相应的库可能是libgcc
和libc
。