1

可能重复:在 C未定义对floor 的引用
中使用 pow() 时出现问题
pow' and

我正在使用 gcc 4.6.1。

代码片段:

int main(void)
{

 int x= 2;
 int y = pow(3,x);
 printf("%d\n",y);

 return 0;
}

终端:

avinash@titanic:~/Desktop/DSF$ gcc power.c -o power
/tmp/ccTJ7vAH.o: In function `main':

power.c:(.text+0x25): undefined reference to `pow'
collect2: ld returned 1 exit status

如果我将 x 替换为 2,那么它将以预期的方式执行。pow 函数不接受变量作为参数吗?

注意:我在源文件中包含了 stdio.h 和 math.h。

4

2 回答 2

8

您需要将-lm命令行开关添加到数学库中的-l...链接(意思是“__ 库中的链接m是数学库):

gcc power.c -lm -o power
于 2012-01-26T20:42:22.710 回答
1

pow 函数是数学库的一部分。因此,编译器的调用应如下所示:

gcc power.c -o power -lm

其中 -lm 是指示链接器与系统上的数学库执行链接的开关。

于 2012-01-26T20:43:15.027 回答