arm-gcc未解决的参考'sinf'

时间:2013-10-27 02:01:26

标签: c gcc arm

我在尝试编译时收到此错误:

error: undefined reference to `sinf'

我已经包含math.h,并验证它是在那里定义的:

#include <math.h>

但是,我在尝试链接到数学库时遇到错误:

arm-none-eabi-ld -L/usr/lib -lm --gc-sections -T ../standalone.ld -o "main.elf"  ./main.o ./startup_gcc.o  
error: cannot find -lm

然而,图书馆显然存在:

Kens-MacBook-Pro:lib Ken$ pwd
/usr/lib
Kens-MacBook-Pro:lib Ken$ ls | grep libm
libm.dylib
libmecab.1.0.0.dylib
libmecab.dylib
libmecabra.dylib
libmenu.5.4.dylib
libmenu.dylib
libmx.A.dylib
libmx.dylib
Kens-MacBook-Pro:lib Ken$ 

我做错了什么?我正在使用Eclipse。

1 个答案:

答案 0 :(得分:2)

根据您的arm-none-eabi-ld命令判断,我假设您正在进行交叉编译。无论您的平台是什么,您都需要在工具链中安装某种数学库。

您发布的ls输出包含可用于您的主机的库列表,而不是您的目标。在我的机器上,我的ARM交叉编译器的库驻留在/opt/local/arm-none-eabi/lib/中。例如。

danieltang ~$ ls /opt/local/arm-none-eabi/lib/
crt0.o      ldscripts  libm.a     libssp_nonshared.a   libstdc++.a-gdb.py  libsupc++.la
elf2flt.ld  libc.a     libssp.a   libssp_nonshared.la  libstdc++.la    thumb
fpu         libg.a     libssp.la  libstdc++.a          libsupc++.a