首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义pow()

未定义pow()
EN

Stack Overflow用户
提问于 2012-10-09 14:22:47
回答 4查看 383关注 0票数 3
代码语言:javascript
复制
#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的未定义引用。

我在这里错过了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-09 14:23:48

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

链接到-lm。

票数 12
EN

Stack Overflow用户

发布于 2012-10-09 14:24:25

数学库不是libc的一部分。你需要把它连接起来:

代码语言:javascript
复制
gcc file.c -lm -o file
票数 6
EN

Stack Overflow用户

发布于 2012-10-09 14:26:11

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12802185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档