gpt4 book ai didi

c - 未定义对 `pow' 和 `floor' 的引用

转载 作者:太空宇宙 更新时间:2023-11-04 04:12:27 27 4
gpt4 key购买 nike

我试图用 C 语言制作一个简单的斐波那契计算器,但是在编译 gcc 时告诉我缺少 pow 和 floor 函数。怎么了?

代码:

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

int fibo(int n);

int main() {
printf("Fib(4) = %d", fibo(4));
return 0;
}

int fibo(int n) {
double phi = 1.61803399;

return (int)(floor((float)(pow(phi, n) / sqrt(5)) + .5f));
}

输出:

gab@testvm:~/work/c/fibo$ gcc fib.c -o fibo
/tmp/ccNSjm4q.o: In function `fibo':
fib.c:(.text+0x4a): undefined reference to `pow'
fib.c:(.text+0x68): undefined reference to `floor'
collect2: ld returned 1 exit status

最佳答案

您需要使用链接标志 -lm 进行编译,如下所示:

gcc fib.c -lm -o fibo

这将告诉 gcc 将您的代码链接到数学库。请务必将标记放在您要链接的对象之后

关于c - 未定义对 `pow' 和 `floor' 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55675697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com