对sqrt未定义的引用 matlab,在包含了math.h头文件情况下为何使用sqrt函数仍然提示 sqrt未定义呢?【附解决方法】...

在使用GCC编译C程序时,如果遇到sqrt未定义的错误,需要在命令行中添加`-lm`参数来链接数学库。这个例子中,通过`gcc area.c -lm`可以成功编译包含sqrt函数的`area.c`文件,避免编译错误并生成a.out可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用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函数找不到错误。

---------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值