error: undefined reference to `pow@GLIBC_2.29'
时间: 2023-07-01 12:29:22 浏览: 276
这个错误通常是由于在编译时没有链接数学库导致的。你可以在编译时添加"-lm"选项来链接数学库。例如,如果你使用gcc编译一个名为test.c的程序,你可以使用以下命令来解决这个问题:
```
gcc test.c -o test -lm
```
"-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() 函数了。
阅读全文