gcc编程所遇问题

为当前最终发行版之前的所有版本提供支持
回复
jinjiachen
帖子: 2087
注册时间: 2012-12-16 15:43
系统: debian
送出感谢: 8 次
接收感谢: 27 次

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
帖子: 1550
注册时间: 2012-03-31 3:29
送出感谢: 2 次
接收感谢: 121 次

Re: gcc编程所遇问题

#2

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

编译时命令行加上“-lm”。。。
16.04-->14.04
jinjiachen
帖子: 2087
注册时间: 2012-12-16 15:43
系统: debian
送出感谢: 8 次
接收感谢: 27 次

Re: gcc编程所遇问题

#3

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

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

Re: gcc编程所遇问题

#4

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

因为#include<math.h>
lllluuukke
帖子: 291
注册时间: 2011-03-10 7:43
送出感谢: 0
接收感谢: 2 次

Re: gcc编程所遇问题

#5

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

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

回到 “老旧版本支持”