【发布时间】:2013-10-29 11:39:32
【问题描述】:
我这里有一个示例文件:
#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 编译器了,如果这是一个糟糕的问题,请原谅我。
【问题讨论】:
标签: c gcc macros compiler-optimization math.h