在OSX上使用不带标头的sinf()

Using sinf() without a header on OSX

本文关键字:sinf OSX      更新时间:2023-10-16

我最近读了很多旧的C,一个常见的习惯用法是简单地向前声明标准库,而不是包括头文件。我想试试,所以我只是声明了而不是#include <math.h>

float sinf(float);

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

clang++ -lm test.c

但遗憾的是,这也给了我一个链接器错误。什么东西?

编辑

我没有在extern "C"中附上转发声明。。。

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

clang test.c -lm