默认使用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>.a
或lib<name>.so
。<name>是-l之后的引用的库名。 在这种情况下,数学库名为libm.so,因此我们称之为-lm。
参考:c - Undefined reference to pow' and floor' - Stack Overflow