error: undefined reference to `pow@GLIBC_2.29'
时间: 2023-07-06 16:28:16 浏览: 298
这个错误可能是因为你的代码中使用了 math.h 库中的 pow 函数,但是链接器找不到该函数的实现。你可以尝试在编译时加上 -lm 选项,告诉链接器链接数学库。例如,如果你使用 gcc 编译,可以这样写:
```
gcc -o your_program your_source.c -lm
```
如果问题仍然存在,可能是因为你的系统中缺少数学库文件,你可以尝试安装该库文件,具体方法取决于你的操作系统。
相关问题
../Thirdparty/DBoW2/lib/libDBoW2.so: undefined reference to `pow@GLIBC_2.29'
这个错误发生的原因是你在编译链接时没有将数学库链接到你的程序中。`pow` 函数是 math.h 头文件中的一个函数,它需要链接到数学库才能正常工作。
如果你使用的是 GCC 编译器,可以在链接参数中添加 `-lm` 来链接数学库,例如:
```
g++ your_program.cpp -lm
```
如果你使用的是 CMake 构建系统,可以在 CMakeLists.txt 文件中添加以下行来链接数学库:
```
target_link_libraries(your_program_name m)
```
这样就能解决这个问题了。
Line 5: Char 28: error: unresolved reference: pow while(x.toDouble().pow(i)<bound){ ^ Line 7: Char 32: error: unresolved reference: pow while(x.toDouble().pow(i)+y.toDouble().pow(j)<=bound){ ^ Line 7: Char 52: error: unresolved reference: pow while(x.toDouble().pow(i)+y.toDouble().pow(j)<=bound){ ^ Line 8: Char 39: error: unresolved reference: pow set.add((x.toDouble().pow(i)+y.toDouble().pow(j)).toInt()) ^ Line 8: Char 59: error: unresolved reference: pow set.add((x.toDouble().pow(i)+y.toDouble().pow(j)).toInt())
抱歉,我的代码中使用了 Kotlin 的扩展函数 Math.pow(),但是在 Kotlin 中没有这个函数,需要使用 Kotlin 标准库中的 kotlin.math 库的函数。您可以将代码修改为:
```kotlin
import kotlin.math.pow
fun powerfulIntegers(x: Int, y: Int, bound: Int): List<Int> {
val set = mutableSetOf<Int>()
var i = 0
while (x.toDouble().pow(i) < bound) {
var j = 0
while (x.toDouble().pow(i) + y.toDouble().pow(j) <= bound) {
set.add((x.toDouble().pow(i) + y.toDouble().pow(j)).toInt())
if (y == 1) break
j++
}
if (x == 1) break
i++
}
return set.toList()
}
```
这样就可以正确地使用 pow() 函数了。
阅读全文