linux 下运行一个使用<math.h>库的.c文件时的命令

                                                         linux下运行程序出现(.text+0xd): undefined reference to `sqrt'  的错误        


linux下编写如下简单的程序7.c:

                                                     

#include <stdio.h>

#include <math.h>
int main()
{
double a,b,c,s,area;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%f\tb=%f\tc=%f\n",a,b,c);
printf("area=%f\n",area);
return 0;
}

输入命令:gcc  7.c -o  7报错如下:

7.c:(.text+0x77): undefined reference to `sqrt'

collect2: ld 返回 1


经百度调查,可知道:

gcc 7.c -o  7  -lm

为正确的!原因在于:

math.h 为数学函数库,在linux下,数学函数是位于libm.so库文件中的(这些库文件通常位于/lib目录下)

-lm选项会告诉我们的编译器,我们这个程序中用到的数学函数要在这个库中找

而我们常用的printf函数,则位于libc.so库文件中,他们可用-lc命令,当然不用也不出错,因为它是gcc默认的选项.







### 回答1: math.h是C语言中的标准头文件之一,在编写数学相关的程序经常会用到。为了使用math.h头文件,我们只需在程序中包含这个头文件即可。 要下载math.h头文件,需要安装一个C编译器,比如gcc。对于Windows操作系统,可以下载MinGW或者Cygwin编译器;对于MAC或者Linux操作系统,可以使用预先安装的GCC编译器。 安装好编译器后,我们就可以使用math.h头文件了。在程序中,我们只需要在需要使用数学函数引入math.h即可。比如,如果我们需要使用sin函数,只需要在程序中包含#include <math.h>,然后就可以调用sin函数进行数学计算了。 需要注意的是,不同的数学函数对应不同的头文件。如果我们只需要使用某个特定的数学函数,可以选择只包含对应的头文件,比如<math.h>中的sin函数对应的头文件是<cmath>。这样可以节省编译间和内存空间。 总的来说,要下载math.h头文件,我们需要安装一个C编译器,并在程序中包含math.h头文件即可开始使用数学函数。 ### 回答2: math.h是C语言中常用的头文件之一,它提供了一些数学运算的函数原型和宏定义。如果需要使用math.h头文件,可以按照以下步骤进行下载。 首先,在编写C程序之前,确保你已经安装了编译器,如gcc。接下来,打开你的文本编辑器,创建一个新的C源文件,比如"myprogram.c"。 然后,在你的源文件中,添加以下代码行: ```c #include <math.h> ``` 这样就将math.h头文件包含进了你的程序中。 保存并关闭文件。接下来,打开你的终端或命令提示符,并进入到包含你的源文件的目录。 然后,使用以下命令来编译你的程序: ``` gcc -o myprogram myprogram.c -lm ``` 这里的"-lm"选项是为了链接数学,因为math.h头文件中的函数需要数学的支持。 如果编译没有错误,你会得到一个可执行文件,比如"myprogram"。最后,运行文件: ``` ./myprogram ``` 这样,你就成功地使用math.h头文件的函数。 总结一下,下载math.h头文件的过程就是将其包含进你的C源文件,并使用编译器来编译和链接你的程序。这样,你就可以使用math.h提供的数学函数了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值