为了账号安全,请及时绑定邮箱和手机立即绑定

未定义的引用`pow'和`floor'

未定义的引用`pow'和`floor'

C
芜湖不芜 2019-08-08 10:34:34
未定义的引用`pow'和`floor'我正在尝试在C中制作一个简单的斐波那契计算器,但在编译时gcc告诉我,我错过了战俘和地板功能。怎么了?码:#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
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

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

gcc fib.c -lm -o fibo

这将告诉gcc将您的代码与数学库链接。只需确保将标志放在要链接的对象之后


查看完整回答
反对 回复 2019-08-08
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

添加-lm到您的链接选项,因为pow()和floor()是数学库的一部分:

gcc fib.c -o fibo -lm


查看完整回答
反对 回复 2019-08-08
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

为了以后阅读本文的任何人的利益,你需要链接它,因为弗雷德说:

gcc fib.c -lm -o fibo

找出需要链接的库的一个好方法是检查手册页是否存在。例如,man pow并且man floor都会告诉你:

链接-lm


查看完整回答
反对 回复 2019-08-08
  • 3 回答
  • 0 关注
  • 1254 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信