pow()未定义

时间:2012-10-09 14:22:47

标签: c

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

void main()
{
    int i, diff, sum = 0, num1 = 6, num2 = 2;

    for(i = 0; i <= 4; i++)
    {
        diff = num1 - num2;
        sum += pow(diff, i);
    }

    printf("%d", sum);
}

每当我尝试执行此程序时,会弹出一条错误消息:

  

在功能main中:
  未定义对pow的引用。

我在这里缺少什么?

4 个答案:

答案 0 :(得分:12)

这是链接器故障。您需要链接数学库,在编译器命令的末尾指定-lm。来自man pow

  

与-lm链接。

答案 1 :(得分:6)

数学库不是libc的一部分。你需要链接它:

gcc file.c -lm -o file

答案 2 :(得分:0)

函数pow()在数学库中定义。默认情况下,您的编译器不会将您的程序与该库链接,因此链接器无法解析对pow()的调用。

要解决此问题,您需要在编译/链接行的末尾添加-lm,它将数学库链接到您的程序。

答案 3 :(得分:0)

我刚刚在Turbo C上运行了相同的程序,输出为341.检查你的头文件是否在Turbo C文件夹的/ include文件夹中。确保检查它是否包含Math.h文件。