马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:#include <stdio.h>
#include <math.h>
int main()
{
unsigned long long sum = 0;
unsigned long long temp;
unsigned long long weight;
int i;
for (i=0; i < 64; i++)
{
temp = pow(2, i);
sum = sum + temp;
}
weight = sum / 25000;
printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
return 0;
}
输入运行命令如下:
[birdc@localhost z]$ gcc sl1aa.c && ./a.out
/tmp/cc2RzPud.o:在函数‘main’中:
sl1aa.c:(.text+0x36):对‘pow’未定义的引用
collect2: 错误:ld 返回 1
请问各位鱼油这是为什么?
注:VirtualBox的c语言学习环境时跟着小甲鱼的教程配置的。
嘿,鱼油!看来你在编写C代码时遇到了“未定义的引用”这个小棘手情况。别担心,我来给你解释一下。
这个错误的根源在于你使用了 `pow` 函数,它是数学库中的一个函数,用于计算幂。但是你忘了告诉编译器去用这个数学库了!在 C 语言中,要使用 `pow` 函数,你需要在代码开头加上 `#include <math.h>` 这一句。这就好比你去餐厅吃饭,但没告诉服务员你要点菜,服务员当然不能了解你的需求。
另外,还需要在编译时链接数学库。你可以通过在运行 `gcc` 命令后面加上 `-lm` 来完成这一点。就像是告诉编译器:“嘿,别忘了叫来数学库哦!”
所以,最后的命令应该是: $ gcc sl1aa.c -lm && ./a.out
试试看这样运行,应该就不会有问题了。希望你能和 `pow` 函数愉快地相处,顺利输出麦子的数量!如果还有其他问题,随时问我哦!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|