我按照书上写了段代码……
#include <stdio.h>
#include "math.h"
int
main (void)
{
float a,b,c,s,area;
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);
return 0;
}
文件名S.c 在终端打gcc -Wall S.c -o S
却出现
/tmp/ccmNpcab.o: In function `main':
S.c:(.text+0x87): undefined reference to `sqrt'
collect2: ld 返回 1
有人知道怎么回事的,告诉我一下可以吗……
初学C语言,来求助一下
-
- 帖子: 12
- 注册时间: 2009-07-25 11:47
-
- 帖子: 3182
- 注册时间: 2006-03-10 15:10
- 来自: xi'an China
- 联系:
Re: 初学C语言,来求助一下
看本版置顶 GCC新手入门
- comfanter
- 帖子: 190
- 注册时间: 2009-05-02 14:51
Re: 初学C语言,来求助一下
编译的时候加上-lm
头文件仅对接口进行描述,但头文件不是负责进行符号解析的实体。连接器也是看不到头文件的,所以你就是用预处理器指令表示需要用到XX库,连接器也可以不理你。
你需要做的是告诉编译器应该使用哪个函数库来完成对符号的解析。
头文件仅对接口进行描述,但头文件不是负责进行符号解析的实体。连接器也是看不到头文件的,所以你就是用预处理器指令表示需要用到XX库,连接器也可以不理你。
你需要做的是告诉编译器应该使用哪个函数库来完成对符号的解析。
-
- 帖子: 12
- 注册时间: 2009-07-25 11:47
Re: 初学C语言,来求助一下
那要怎么改才可以呢?
- shanliang8008
- 帖子: 1362
- 注册时间: 2007-07-16 19:43
- 来自: tangshan
Re: 初学C语言,来求助一下
代码: 全选
#include <stdio.h>
#include <math.h>
int main (void)
{
float a,b,c,s,area;
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);
return 0;
}
-
- 帖子: 37
- 注册时间: 2009-06-27 23:33
Re: 初学C语言,来求助一下
用gcc编译的时候,加入 -lm选项。
在我自己的机器上是这样的:
[/color]
在我自己的机器上是这样的:
代码: 全选
kimi@kimi-desktop:~/program$ gcc -o math1 math1.c -lm
- lerosua
- 论坛版主
- 帖子: 8455
- 注册时间: 2007-11-29 9:41
- 联系:
Re: 初学C语言,来求助一下
用到了数学库