默认使用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

在尝试编译C程序时遇到错误:undefined reference to `pow'。该问题通常由于缺少链接math库导致。通过在gcc命令中添加`-lm`标志,指示编译器链接math库(libm.so),可以成功解决此问题。这表明在C代码中使用了如pow这样的数学函数,而这些函数在标准数学库中定义。
5346

被折叠的 条评论
为什么被折叠?



