[ 已解决 ] 感觉自己的 gcc 坏了怎么办?

就连用 sqrt 函数,编译的时候加 -lm 都说找不到 sqrt 函数。
同样的程序用 intel icc 编译没有任何问题。
我应该怎么检查设置以解决这个问题呢?
错误大概是:

程序是一个很简单的计算面积的程序:

#include<stdio.h>
#include<math.h>
int main()
{
  double a,b,c;
  scanf("%lf %lf %lf",&a, &b, &c);
  double p = (a+b+c)/2.0;
  double s = sqrt(p*(p-a)*(p-b)*(p-c));
  printf("%lf %lf %lf %lf 
",a,b,c,s);
  return 0;
}

等高手帮我解决一下,谢谢。

lz 把 gcc 的代码贴下吧?

同意

和 -lm 的位置有关,把 -lm 放 triangle.c 的后面,例如

gcc triangle.c -lm

在我这里可以编译的。

没懂贴什么?

这个吗?

我应该提供些什么信息呢?

我看到一个这样的 解释 ](http://blog.csdn.net/wh921021/article/details/8756702) ,但是这是什么意思呢?

我知道了,应该把

gcc -lm triangle.c

改成

gcc triangle.c -lm

谢谢各位了

果然是这个问题,谢谢

写 Makefile 或者直接用 autoconf/automake 来生成 Makefile,推荐后者,出来的结果就是我们从源码编译安装的三部曲了。

:joy: 为什么感觉楼主在刷水呢?

应该给小白们写个文章= =参数加哪里…是命令后面直接加还是命令写完再加= =

可能我们用习惯了不觉得这是个问题…小白可能困在那半天不得其姐= =||

Linux 世界里面竟然有感觉这种状态的哦!呵呵