关于pow函数,编译不通过的问题
#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;
}
我在linux下执行这段代码
然后编译出现
/tmp/ccDVCRWr.o: In function `main':
dds1.c:(.text+0x35): undefined reference to `pow'
collect2: ld returned 1 exit status
我已经添加math.h了{:10_249:}{:10_249:}{:10_256:} 编译时加上-lm试试
gcc -o test1.c -lm 本帖最后由 345140395 于 2017-8-4 12:48 编辑
ba21 发表于 2017-8-4 12:43
编译时加上-lm试试
gcc -o test1.c -lm
$ gcc -o dds1.c -lm
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
这个还是有问题吗?
345140395 发表于 2017-8-4 12:46
$ gcc -o dds1.c -lm
/usr/lib/gcc/i686-redhat-linux/4.4.7/../../../crt1.o: I ...
linux 下编译pow 要加 -lm
你试了吗? ba21 发表于 2017-8-4 12:48
linux 下编译pow 要加 -lm
你试了吗?
是我上面那样吗? 345140395 发表于 2017-8-4 12:50
是我上面那样吗?
linux 下编译pow 要加 -lm
pow还要转换成unsigned long long 在赋值
ba21 发表于 2017-8-4 12:43
编译时加上-lm试试
gcc -o test1.c -lm
#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;
}
我还是不太懂,你可以做给位我看吗? 345140395 发表于 2017-8-4 13:00
我还是不太懂,你可以做给位我看吗?
楼上不是给你发图了{:10_305:} 本帖最后由 345140395 于 2017-8-4 13:23 编辑
{:10_249:} ba21 发表于 2017-8-4 13:10
楼上不是给你发图了
还有两个问题 1-lm 是什么意思? 2 如何复制代码到linux,我复制粘贴之后代码很乱{:10_257:} {:10_282:}
页:
[1]