C语言 pow函数 undefined reference to `pow‘ 已解决

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

默认使用gcc编译是

gcc  encoding1.c -o  encoding1

  

结果报错:


  
  1. /tmp/ccvERwYZ.o: In function `Sum ':
  2. encoding1.c:(. text+ 0x62): undefined reference to `pow '
  3. 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

/usr/bin/ld: H5Zscaleoffset.c:(.text+0x9d6b): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0x9e28): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0x9e5b): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0x9e80): undefined reference to `roundf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0x9ec1): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0x9ef4): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0x9f19): undefined reference to `llroundf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0x9fb6): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa035): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa063): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa088): undefined reference to `lroundf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa183): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa1b6): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa1db): undefined reference to `roundf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa21c): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa24f): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa274): undefined reference to `llroundf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa2eb): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa319): undefined reference to `powf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa33e): undefined reference to `lroundf' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa5ee): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa6a7): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa775): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa7a9): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa7d0): undefined reference to `round' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa813): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa847): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa86e): undefined reference to `llround' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa90f): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa99b): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xa9c8): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xaa05): undefined reference to `lround' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xaaff): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xab33): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xab5a): undefined reference to `round' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xab9d): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xabd1): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xabf8): undefined reference to `llround' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xac71): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xac9e): undefined reference to `pow' /usr/bin/ld: H5Zscaleoffset.c:(.text+0xacdb): undefined reference to `lround'
最新发布
11-07
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值