看不出为什么未定义,求助大佬
#include <stdio.h>#include <math.h>
int main()
{
int z,x;
printf("请输入数字。\n");
scanf("%d",&x);
if(x>1000)
{
printf("请重新输入小于1000的数字。\n");
}
else
{
z= sqrt(x);
printf("整数部分为%3.0d",z);
}
return 0;
}
编译结果:
$ gcc 检查小于1000的数的平方根.c
/tmp/ccIPhU4u.o:在函数‘main’中:
检查小于1000的数的平方根.c:(.text+0x46):对‘sqrt’未定义的引用
collect2: 错误:ld 返回 1
你没有链接数学库,因为sqrt函数是在数学库中定义的。
你可以在编译命令中加上-lm选项,例如:
gcc 检查小于1000的数的平方根.c-lm。
这样就可以链接数学库并使用sqrt函数了。 你没有链接数学库,因为sqrt函数是在数学库中定义的。
你可以在编译命令中加上-lm选项,例如:
gcc 检查小于1000的数的平方根.c-lm
这样就可以链接数学库并使用sqrt函数了。 需要加上 -lm 来链接数学库
gcc 检查小于1000的数的平方根.c-lm gcc 检查小于1000的数的平方根.c-lm isdkz 发表于 2023-3-9 20:12
?大佬没有看懂
童欣 发表于 2023-3-9 20:15
?大佬没有看懂
比如gcc 666.c-lm 童欣 发表于 2023-3-9 20:15
?大佬没有看懂
要加上 -lm 来链接数学库 isdkz 发表于 2023-3-9 20:20
要加上 -lm 来链接数学库
谢谢大佬,明白了
页:
[1]