当前位置:  开发笔记 > 运维 > 正文

一个gcc sqrt函数bug?

如何解决《一个gccsqrt函数bug?》经验,为你挑选了1个好方法。

以下程序无法在gcc中编译.但它与g ++和MSC++的.c扩展编译正常.

#include 
#include 

int main()
{
  double t = 10;
  double t2 = 200;

  printf("%lf\n", sqrt(t*t2));

  return 0;
}

我的系统是CentOS,版本信息.

> gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

错误信息:

> gcc test.c
/tmp/ccyY3Hiw.o: In function `main':
test.c:(.text+0x55): undefined reference to `sqrt'
collect2: ld returned 1 exit status

这是一个错误吗?

任何人都可以为我做测试吗?



1> Tom..:

你有没有连接数学库?

gcc -lm test.c -o test 


因为`g ++`引入了`-lddc ++`,它引入了`-lm`.
你不想用`g ++`编译'原始'C代码.C和C++是不同的语言.
我使用的gcc在*test.c之后需要`-lm`*(在Ubuntu上为4.6.1)
推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有