pow()未定义

#include  #include  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); } 

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

functionmain
未定义的参考pow

我在这里想念的是什么?

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

链接-lm。

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

 gcc file.c -lm -o file 

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

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

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