0

尝试编译时出现此错误:

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。

4

1 回答 1

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
于 2013-10-27T02:05:36.193 回答