undefined reference to `sqrt' 的解决办法

#include "stdlib.h" #include "stdio.h" #include "math.h" int main() { int num = 3; printf("%f/n",sqrt(num)); return(0); }

 

#include "stdlib.h" #include "stdio.h" #include "math.h" int main() { printf("%f/n",sqrt(3)); return(0); }

 

以上是两个测试程序(文件名:sqrt1.c      sqr2t.c):

A:第一个编译(gcc sqrt1.c)时报错:

/tmp/cc8UeT3P.o: In function `main':
sqrt1.c:(.text+0x39): undefined reference to `sqrt'
collect2: ld returned 1 exit status

 

B:第二个编译( gcc sqrt2.c),可以正常编译,且能正常运行。

这是为什么呢?


临时解决方法:
gcc -lm sqrt1.c     //加上-lm参数可以正常编译。

你可能感兴趣的:(reference,gcc,include,function,测试)