gcc编译报错:
/tmp/cc9vSr1B.o:在函数‘main’中:
daffodil.c:(.text+0xb8):对‘pow’未定义的引用
daffodil.c:(.text+0xda):对‘pow’未定义的引用
daffodil.c:(.text+0x105):对‘pow’未定义的引用
collect2: error: ld returned 1 exit status
解决方案:
gcc daffodil.c -lm
需要编译链接符号.
原因:
像 pow(10,2) 这种调用,gcc 在编译时就可以将其替换为对应的值(gcc 优化的一部分),从而不需要链接 pow 所在的数学库 libm;而像 pow(x,2); 这种调用,一般无法做这种替换,因此需要链接 libm。
手册上的介绍