我在这里有一个示例文件:
#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 编译器以来已经有一段时间了,如果这是一个糟糕的问题,请原谅我。