gpt4 book ai didi

C libm.a 编译时不需要链接

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:10 26 4
gpt4 key购买 nike

我试图编译一个包含 <math.h> 的源文件.但是我成功地创建了一个可执行文件,没有链接到 libm.a 没有错误.

我输入的命令是 gcc -Wall filename.c -o executablename

我被告知要链接到外部库(即 libc.a 以外的库)

这是怎么回事?

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

int main(void)
{
double x = sqrt(2.0);
printf ("The sqrt of 2 is: %f\n", x);
return 0;
}

最佳答案

您调用的数学函数由编译器内置函数实现。如果您想查看错误消息,请尝试以下操作:

gcc -fno-builtin -Wall filename.c -o executablename

例如,在我的平台 (Ubuntu 14.04.3 LTS) 上,我收到此错误消息:

$ cat x.c
#include <math.h>
#include <stdio.h>

int main(void)
{
double x = sqrt(2.0);
printf ("The sqrt of 2 is: %f\n", x);
return 0;
}
$ gcc -fno-builtin x.c
/tmp/ccpjG2Pb.o: In function `main':
x.c:(.text+0x1c): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status

关于C libm.a 编译时不需要链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38604278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com