LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1804|回复: 15

RH8下无法编译C程序

[复制链接]
发表于 2003-3-1 17:51:47 | 显示全部楼层 |阅读模式
刚学习C语言,用的是谭浩强的《C程序设计》。书中的程序在RH7.3中可以编译,但是在RH8中却无法编译,不知是为什么?
底下是一个非常简单的求三角形面积的程序l310.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);
}
编译时提示:
l310.c:5:7: warning: multi-line string literals are deprecated
l310.c: In function `main':
l310.c:5: parse error before "a"
l310.c:5: stray '\' in program
l310.c:8:45: warning: multi-line string literals are deprecated
l310.c:5: stray '\' in program
l310.c:9:21: warning: multi-line string literals are deprecated
l310.c:9:21: missing terminating " character
l310.c:5:7: possible start of unterminated string literal
问题可能很幼稚,请不吝赐教。
发表于 2003-3-1 18:18:34 | 显示全部楼层
scanf("%f,%f,%f,&a,&b,&c);

少了个引号
 楼主| 发表于 2003-3-1 19:07:56 | 显示全部楼层
谢谢ltkun兄回帖,我把"加上后编译又出现了以下错误提示:
/tmp/ccMmTlxx.o(.text+0x61): In function `main':
: undefined reference to `sqrt'
collect2: ld returned 1 exit status
请再次指教。
发表于 2003-3-1 19:17:42 | 显示全部楼层
我有两个想法,不一定对,但是想说
呵呵
1。有的兄弟也提过,#include头文件时,<>表示是标准库的,""是表示用户自定义的库;
2。潭浩强老师写的是dos下turboc的程序,gcc也许有些库函数可能是跟turboc不同的。如果你要在linux下用书上的源程序最好再到图书馆借本gcc的手册。
废话说完,是不是于事无补?哈哈,西红柿!!我闪!
发表于 2003-3-1 22:34:40 | 显示全部楼层
linux下面的数学函数要加 -lm
你再编译试试
 楼主| 发表于 2003-3-1 23:18:20 | 显示全部楼层
谢谢众位热心的兄弟,谢谢ltkun,用gcc -o l310  l310.c -lm编译果真能行了。请教ltkun,lm参数是什么含义?
发表于 2003-3-2 05:08:50 | 显示全部楼层
-lm就是指定libm.a库
发表于 2003-3-2 09:54:38 | 显示全部楼层
学习。。。。
 楼主| 发表于 2003-3-2 11:00:13 | 显示全部楼层
谢谢!
发表于 2003-3-2 12:03:02 | 显示全部楼层
受益匪浅!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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