- 论坛徽章:
- 0
|
在两个不同的代码里面,一个找不到sqrt,而另外一个可以找到,不知道是为什么?
第一个代码是:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
struct Point {
int x;
int y;
};
typedef struct Point point;
double distance(point a, point b) {
int x,y;
x = abs(a.x - b.x);
y = abs(a.y - b.y);
printf("%d,%d", x, y);
return sqrt(x*x + y*y);
}
int main(void) {
point a,b;
a.x = 0;
a.y = 0;
b.x = 3;
b.y = 4;
printf("%f", distance(a,b));
return 0;
}
|
编译起来报错:
gcc -Wall -o "distance" "distance.c" (in directory: /home/tux)
Compilation failed.
/tmp/ccouoVK5.o: In function `distance':
distance.c .text+0x83): undefined reference to `sqrt'
collect2: ld returned 1 exit status
第二个代码是:
#include <stdio.h>
#include <math.h>
int main(void) {
return sqrt(4);
}
|
第二个缺没有问题. |
|