这两个是等价还是不同(在什么意义上)?
myfile1.c
#include <stdio.h>
#include <math.h>
//some code here which uses math library
并使用gcc
$gcc myfile1.c
myfile2.c
#include <stdio.h>
//some code here which uses math library
但是使用以下语句编译它
$gcc myfile2.c -lm
答案 0 :(得分:0)
刚写了一个程序来测试这个:
#include <stdio.h>
#include <math.h>
void main() {
double f = 0.5;
printf("%f", sqrt(f));
}
这两个命令产生8432个字节文件,这些文件在我的机器上是相同的。
所以我想在这两种情况下,libm
是动态链接的,我想如果只找到一个存档文件( .a)而不是典型的( .so)共享库