【问题标题】:The pow() function isn't working on CLionpow() 函数不适用于 CLion
【发布时间】:2020-07-21 02:52:29
【问题描述】:

所以我是新手,但我使用的是 YouTube 教程,但由于某种原因,我的 pow 功能无法正常工作。例如:

printf ("%d", pow(4, 3));

应该是 %d,因为我得到的是双倍的,对吧?我尝试了 %d,但没有奏效。

这是我得到的错误:

error: use of undeclared identifier 'pow'

帮助一个新手,干杯。

【问题讨论】:

  • 我试过了,还是不行
  • 你可能需要包含 math.h
  • 你需要#include <math.h>并且你需要在printf中使用正确的格式代码。您可能还需要与-lm 链接。请注意,pow 接受两个 double 参数并返回一个 double 结果。
  • @SubashPariyar 按照我的指示。再来一次:(1) #include <math.h> (2) 使用 %f 和 (3) 与 -lm 的链接(或者在您的平台上完成)。三个步骤。
  • @SubashPariyar 阅读我所说的:link-lm。链接是生成可执行文件的最后一步。它结合了一组目标文件和库。 -lm 告诉它与数学库链接。如果不这样做,它将找不到pow。例如,在gcc 中,您将执行gcc myprog.c -lm(这将编译myprog.c 并将结果与​​数学库一起链接)。 CLion 必须有类似的东西。试试看。

标签: c clion


【解决方案1】:

我意识到这是一个老问题,但答案并没有真正解决问题,所以为了后代,这里是答案。

使用 Clion,您需要先将 #include <math.h> 添加到您的代码中,例如

#include <stdio.h>
#include <math.h>


int main() {
    double a, b;
    a = 2.0;
    b = 4.0;

    printf("2.0^4.0 = %f", pow(a, b));

    return 0;
}

第二件事是您需要在 CMakeLists.txt 中添加 target_link_libraries( m) 例如

cmake_minimum_required(VERSION 3.20)
project(example C)

set(CMAKE_C_STANDARD 99)

add_executable(example main.c)
target_link_libraries(example m)

【讨论】:

    【解决方案2】:

    您需要包含数学库。 为此,不仅要在开头添加标准输入/输出库,还要添加数学库。

    #include <stdio.h>
    #include <math.h>
    

    【讨论】:

    • 他们还需要在 CMakeLists.txt 中添加 add target_link_libraries( m) 作为指定 CLion 的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多