Math.h(不是通常的)

时间:2018-05-14 19:54:46

标签: c gcc

几天前,我使用math.h的atan函数正常工作,但由于某种原因它不再编译。我得到了通常的

  

'broken_code.c :(。text + 0x49):对'atan'的未定义引用

我编译时包含-lm标志。

我尝试在另一个系统(另一个Linux系统和基于BSD的系统)上编译和运行它,它运行正常。我真的不知道编译器如何工作/链接的东西,所以任何帮助将不胜感激。 这是我的代码:

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

int main() {
    double y1, x1, y2, x2;
    y1 = 0;
    x1 = 0;
    y2 = 1;
    x2 = 0;

    y1 = atan((y1-y2)/(x1-x2));
    printf("%lf\n\n", y1);


    return 0;
}

1 个答案:

答案 0 :(得分:4)

也许您以错误的顺序链接了数学库。 例如

gcc -lm prog.c

时,

可能无法正常工作

gcc prog.c -lm