在OSX上使用没有标头的sinf()

时间:2015-11-07 05:35:20

标签: c++ macos clang

我最近一直在阅读很多旧的C语言,而一个常见的习惯用语就是向前声明标准库而不是包含头文件。我想尝试一下,所以我只是声明了<{p>而不是#include <math.h>

float sinf(float);

位于文件顶部。令我惊讶的是,我收到了链接错误!我甚至尝试手动包括数学库,如下所示:

clang++ -lm test.c

但是,这也给我一个链接器错误。是什么给了什么?

修改

我没有在extern "C" ...

中附上前瞻性声明

1 个答案:

答案 0 :(得分:2)

-lm应该放在编译命令的最后一个参数中。尝试

clang test.c -lm