我最近一直在阅读很多旧的C语言,而一个常见的习惯用语就是向前声明标准库而不是包含头文件。我想尝试一下,所以我只是声明了<{p>而不是#include <math.h>
float sinf(float);
位于文件顶部。令我惊讶的是,我收到了链接错误!我甚至尝试手动包括数学库,如下所示:
clang++ -lm test.c
但是,这也给我一个链接器错误。是什么给了什么?
修改
我没有在extern "C"
...
答案 0 :(得分:2)
-lm
应该放在编译命令的最后一个参数中。尝试
clang test.c -lm