我这里有一个示例文件:
我这里有一个示例文件:
#include <stdio.h>
#include <math.h>
int main(){
printf("%f\n", log(10));
}
当我用gcc sample.c -o a
编译代码时就能正常运行,通过./a
可以得到预期的输出值2.302585
。
然而,当我的文件看起来像这样:
#include <stdio.h>
#include <math.h>
int main(){
double a = 10;
printf("%f\n", log(a));
}
使用gcc sample.c -o a
编译代码会出错,需要使用gcc sample.c -o a -lm
命令才能成功编译,似乎要告诉它“链接数学库”...我不是很明白,在第一个示例中为什么不需要链接数学库?链接数学库到底意味着什么?既然已经有一段时间没有使用C编译器了,所以如果这个问题问的不好,请原谅。