C 和 <complex.h> 文件
C and the <complex.h> file
我的简单程序compTest.c
#include<stdio.h>
#include<complex.h>
int main(void)
{
double complex z = 1.0 + 1.0 * I;
printf("|z| = %.4f\n", cabs(z));
return 0;
}
在 Linux 系统上使用标准库并使用 gcc 编译时,我是否需要包含 -lm 标志才能正常工作?
示例:
gcc -o executableName fileName.c -lm
如果我不这样做,我会得到以下信息:
/tmp/cc1o7rtt.o: 在函数“main”中:
comTest.c:(.text+0x35): undefined reference to `cabs'
collect2: error: ld returned 1 exit status
看来你已经发现答案是肯定的了
-lm
标志告诉 linker link 数学库,其中包含 cabs
函数的代码。 (这是一个 gcc/Linux 问题,不是 C 语言问题。)
cabs
的 Linux 手册页明确指出 Link with -lm.
(一般来说,如果你想调用 any 库函数,但你不是 100% 确定如何使用它,请阅读手册页。)
我的简单程序compTest.c
#include<stdio.h>
#include<complex.h>
int main(void)
{
double complex z = 1.0 + 1.0 * I;
printf("|z| = %.4f\n", cabs(z));
return 0;
}
在 Linux 系统上使用标准库并使用 gcc 编译时,我是否需要包含 -lm 标志才能正常工作?
示例:
gcc -o executableName fileName.c -lm
如果我不这样做,我会得到以下信息: /tmp/cc1o7rtt.o: 在函数“main”中:
comTest.c:(.text+0x35): undefined reference to `cabs'
collect2: error: ld returned 1 exit status
看来你已经发现答案是肯定的了
-lm
标志告诉 linker link 数学库,其中包含 cabs
函数的代码。 (这是一个 gcc/Linux 问题,不是 C 语言问题。)
cabs
的 Linux 手册页明确指出 Link with -lm.
(一般来说,如果你想调用 any 库函数,但你不是 100% 确定如何使用它,请阅读手册页。)