我正在使用vscode在c中使用pow()函数。 我想在幂函数的指数参数中使用变量,即pow(2,i)。 但是我遇到了错误,所以我在终端编译期间使用了gcc programName.c -lm。 有什么方法可以使用gcc programName.c这样的常规编译命令并获得具有相同问题的程序输出。
A B C D
1:540450-541070 0.12495878 0.71580434 0.65399319 1.04879290
1:546500-548198 0.41064192 0.26136554 0.11939805 0.28721360
1:566726-567392 0.00000000 0.06663644 0.45661687 0.24408844
1:569158-570283 0.34433086 0.27614141 0.54063437 0.21675053
1:603298-605500 0.07036734 0.42324126 0.23017472 0.29530045
1:667800-669700 0.20388011 0.11678913 0.00000000 0.12833913
1:713575-713660 7.29171225 12.53078648 2.38515165 3.82500941
1:724497-727160 0.40730086 0.26664585 0.45678834 0.12209005
1:729399-731900 0.74345727 0.49685579 0.72956458 0.32499580
错误:
/tmp/ccptU1ZR.o:在功能n = 10;
h = 0;
while (n > pow(2, h))
h++;
printf("\n%d\n", h);
中'
collect2:错误:ld返回1退出状态
终端进程终止于退出代码:1
预期输出: 4
答案 0 :(得分:0)
-lm
选项不是另一种编译类型,而是告诉编译器(实际上是链接器)在何处查找pow()
函数的含义或定义。因此,请放心使用-lm
,它只表示代码中包含数学函数,否则gcc不会自行查找。