C中的平方根程序未编译

时间:2018-09-30 01:40:58

标签: c compiler-errors square-root

刚开始学习C的时候,我在C教程网站上找到了这个示例程序,编译时出现错误。

这是程序,根据用户输入计算数字的平方根:

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

int main()
{
    double num, root;

    /* Input a number from user */
    printf("Enter any number to find square root: ");
    scanf("%lf", &num);

    /* Calculate square root of num */
    root = sqrt(num);

    /* Print the resultant value */
    printf("Square root of %.2lf = %.2lf", num, root);

    return 0;
}

我在Ubuntu中使用gcc进行编译:

gcc -o square_root square_root.c

这是错误:

/tmp/cc9Z3NCn.o: In function `main':
square_root.c:(.text+0x4e): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status

我在做什么错?我可以看到数学模块已导入,为什么会出现错误?

同样,我今天才开始学习C,我只想弄清楚如何运行程序。谢谢您的耐心等待,因为它一定很明显。

2 个答案:

答案 0 :(得分:2)

sqrt位于数学库中,因此您需要告诉您的程序使用-lm进行链接:

gcc -o square_root square_root.c -lm

答案 1 :(得分:1)

您需要使用-lm标志进行编译

gcc -o square_root square_root.c -lm