默认使用gcc编译是

gcc  encoding1.c -o  encoding1

结果报错:

/tmp/ccvERwYZ.o: In function `Sum':
encoding1.c:(.text+0x62): undefined reference to `pow'
collect2: error: ld returned 1 exit status

改成下面的样子就可以成功编译了。

gcc  encoding1.c -lm -o  encoding1

-lm告诉gcc将代码与math库链接。

lm的意思是library math
查看/lib/usr/lib。 这些库都被命名为lib<name>.alib<name>.so。<name>是-l之后的引用的库名。 在这种情况下,数学库名为libm.so,因此我们称之为-lm。


参考:c - Undefined reference to pow' and floor' - Stack Overflow