用VI编辑area.c文件,内容如下:
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
main(){
float
a,b,c,s,area;
printf("please input
a,b,c:\n");
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area =
sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f, b=%7.2f, c=%7.2f,
s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
在Terminal中进行编译时,运行
gcc area.c
会提示sqrt没有定义,并且不会生成a.out文件。
【解决方法】
运行
gcc area.c -lm
即可。
解释:使用gcc编译时,需要在后面加上参数-lm,m即math的简写,即编译时要链接数学函数库才可以,否则会报sqrt函数找不到错误。
---------------------