在 C 中使用 pow() 函数会引发未定义的引用错误

2023-12-13

为什么下面的代码在 C 中可以工作:

int res = pow(2, 3);
printf("%d\n", res);

而另一个则没有?

int a = 2;
int b = 3;

int res = pow(a, b);
printf("%d\n", res);

即使我尝试

double a = 2;
double b = 3;

double res = pow(a, b);
printf("%f\n", res);

I get an

对“pow”的未定义引用

我究竟做错了什么?


当它起作用时,这是因为计算是由编译器本身完成的(并且包含在二进制文件中,就像您将其写出来一样)

printf("8\n");

当它不起作用时,是因为pow函数包含在数学库中,并且默认情况下数学库不与您的二进制文件链接。
要链接数学库,如果您的编译器是 gcc,请使用

gcc ... -lm ...

与其他编译器,应该是一样的:)
但请阅读文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C 中使用 pow() 函数会引发未定义的引用错误 的相关文章

随机推荐