找回密码
 注册
查看: 661|回复: 5

C编译的时候出现问题

[复制链接]
发表于 2005-4-7 10:11:27 | 显示全部楼层 |阅读模式
[abcde@localhost exer]$ gcc -o 3.10.out 3.10.c
/tmp/ccar89qC.o(.text+0x6d): In function `main':
: undefined reference to `sqrt'
collect2: ld returned 1 exit status

c的源程序

#include "math.h"
main ()
{
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);
}


谢谢
发表于 2005-4-7 10:17:53 | 显示全部楼层
加个 -lm。 数学库
回复

使用道具 举报

 楼主| 发表于 2005-4-7 10:23:50 | 显示全部楼层
请问 lm表示什么意思?
回复

使用道具 举报

 楼主| 发表于 2005-4-7 10:26:28 | 显示全部楼层
[abcde@localhost exer]$ gcc -lm 3.10.out 3.10.c
gcc: 3.10.out: No such file or directory

这个提示又是怎么回事?难道要先建立一个.out文件?
似乎以前没有出现过这个问题.
我刚用linux写C,很多还不太明白.也在看一些资料,包括本版的精华

1. 使用 gcc -lm 3.10.c
   编译成功,生成默认的a.out.可是为什么不能直接编译成目标文件3.10.out呢?
2. 是不是只要含有数学函数,在编译的时候就要加上 -lm.
   我在精华中一个链接找到的linux常用C函数中,数学函数中abs()不需要-lm,其余的都需要.(这么写的)是不是漏写了?

我去试一下.
回复

使用道具 举报

发表于 2005-4-7 13:53:13 | 显示全部楼层
gcc -lm -o 3.10.out 3.10.c
回复

使用道具 举报

 楼主| 发表于 2005-4-7 14:45:36 | 显示全部楼层
-lm -o
可不可以连着写成 -lmo 或着 -olm?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-9 00:00 , Processed in 0.022508 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表