345140395 发表于 2017-8-4 12:38:48

关于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:}

ba21 发表于 2017-8-4 12:43:17

编译时加上-lm试试
gcc -o test1.c -lm

345140395 发表于 2017-8-4 12:46:52

本帖最后由 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


这个还是有问题吗?

ba21 发表于 2017-8-4 12:48:17

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
你试了吗?

345140395 发表于 2017-8-4 12:50:25

ba21 发表于 2017-8-4 12:48
linux 下编译pow 要加 -lm
你试了吗?

是我上面那样吗?

ba21 发表于 2017-8-4 12:51:38

345140395 发表于 2017-8-4 12:50
是我上面那样吗?

linux 下编译pow 要加 -lm

pow还要转换成unsigned long long 在赋值

ba21 发表于 2017-8-4 12:58:14


345140395 发表于 2017-8-4 13:00:35

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;
}

我还是不太懂,你可以做给位我看吗?

ba21 发表于 2017-8-4 13:10:51

345140395 发表于 2017-8-4 13:00
我还是不太懂,你可以做给位我看吗?

楼上不是给你发图了{:10_305:}

345140395 发表于 2017-8-4 13:18:45

本帖最后由 345140395 于 2017-8-4 13:23 编辑

{:10_249:} ba21 发表于 2017-8-4 13:10
楼上不是给你发图了

还有两个问题 1-lm 是什么意思? 2 如何复制代码到linux,我复制粘贴之后代码很乱{:10_257:} {:10_282:}
页: [1]
查看完整版本: 关于pow函数,编译不通过的问题