回 帖 发 新 帖 刷新版面

主题:关于math.h 库的一个简单问题

一个简单的小程序:
#include "stdio.h"
#include "math.h"
main()
{
    double x,y;
    printf("Please input a number:\n");
    scanf("%f",&x);
    y=sqrt(x);
    printf("%f    %f\n",x,y);
}
在Red hat linux 9下用  gcc -o text1 text1.c  来编译,通不过.
错误信息为:
    undefined reference to 'sqrt'
    collect2:ld returned 1 exit status
其它的数学函数也用不了,提示信息只不过把'sqrt'改成所调用的数学函数名而已。
  我是初学者,这个问题困扰了我好长时间,请教各位高手,谢谢!![em2]

回复列表 (共5个回复)

沙发

#include <stdio.h>
#include <math.h>

int main()
{
    double x,y;
    printf("Please input a number:\n");
    scanf("%f",&x);
    y=sqrt(x);
    printf("%f    %f\n",x,y);
    return 0;
}

gcc -0 file file.c

板凳

多谢楼上的,改天请你吃冰激凌,呵呵

3 楼

刚刚试过了,还是老样子,怎么办?我急着要用

4 楼

由于math对应的库为math.so是单独存在的,所以要加参数-lm
gcc -lm -Ofile file.c

5 楼

gcc -o text1 text1.c   -lm 同意楼上的

我来回复

您尚未登录,请登录后再回复。点此登录或注册