计算C中复数的abs值

罗通侯*_*通侯君 0 c linker-errors clion

部分源代码:

double _Complex z = 1.0 + 1.0*I;
printf("%f\n", cabs(z));
Run Code Online (Sandbox Code Playgroud)

我的开发环境:Ubuntu16.04LTS,Clion IDE,GCC版本5.4.0,C11标准.

当我运行代码时,消息发生错误

undefined reference to `cabs'
Run Code Online (Sandbox Code Playgroud)

IDE告诉我该函数cabs是在头文件中声明的cmathcalls.h,所以我尝试:

#include<cmathcalls.h>
Run Code Online (Sandbox Code Playgroud)

但IDE警告我无法找到该文件,所以我再次尝试:

#include<bits/cmathcalls>
Run Code Online (Sandbox Code Playgroud)

我运行代码,但它仍然无法运行.

我想知道如何通过z函数得到复数的abs值cabs

Ant*_*ala 5

cabs你来说就是需要<complex.h>.它实际声明的位置只是一个实现细节.

然后链接-lm到实际链接数学库.