gcc编程所遇问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

gcc编程所遇问题

#1

帖子 jinjiachen » 2013-02-27 0:27

以下是我的程序代码
#include<stdio.h>
#include<math.h>
void main()
{
double a[10],b[10]; /*½ÚµãÊýΪ10*/
int i,j,n;
double h=45,x=110,y=0.01,m,m1,t; /*xΪµ¼ÈÈϵÊý£¬yΪÀߺñ*/
m1=h*2/x/y;
m=sqrt(m1);
for(i=0;i<10;i++)
{
a=b=1;
}
for(i=1,j=1;n<9;i++,j++)
{
if(i==1) n=0;
if(i==9) b[j]=a[j-1];
else b[j]=(1/(2+m*m*0.01*0.01))*(a[i+1]+b[j-1]);
if(fabs((a-b[j])/a)<=0.00000001) n++;
a=b[j];
if(i==9) i=1,j=1;
}
for(i=0;i<=9;i++)
用gcc **.c -o ××.exe出现如下错误
/tmp/ccBklkVW.o: In function `main':
c.c:(.text+0x61): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
不知道是什么原因?
taohunter
帖子: 1555
注册时间: 2012-03-31 3:29

Re: gcc编程所遇问题

#2

帖子 taohunter » 2013-02-27 0:46

编译时命令行加上“-lm”。。。
三年后终于回到16.04--稳定了!
jinjiachen
帖子: 2148
注册时间: 2012-12-16 15:43
系统: debian

Re: gcc编程所遇问题

#3

帖子 jinjiachen » 2013-02-27 23:24

taohunter 写了:编译时命令行加上“-lm”。。。
这是为什么?是因为要用其它的库文件吗?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: gcc编程所遇问题

#4

帖子 枫叶饭团 » 2013-02-27 23:26

因为#include<math.h>
lllluuukke
帖子: 291
注册时间: 2011-03-10 7:43

Re: gcc编程所遇问题

#5

帖子 lllluuukke » 2013-02-28 11:36

因为gcc默认不链接除libc以外的库,而sqrt()在libm里被定义,所以需要链接。
http://stackoverflow.com/questions/4606 ... th-library
回复