我正在尝试在 C 中执行一个非常简单的代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifndef M_PI
#define M_PI 3.14
#endif
double cosrad (double n)
{
double rad = n*(M_PI)/180.0;
double res = cos(rad);
return res;
}
int main (int argc, char** argv)
{
printf ("cosrad 90 = %f\n", cosrad(90));
printf ("cos pi/2 = %f\n", cos(M_PI/2.0));
return 0;
}
但是在使用此命令行(使用-lm)进行编译时,出现错误。似乎找不到数学库。
$gcc -Wall -Werror -std=c99 -O0 -lm -g -o foo foo.c
.c:12: undefined reference to `cos'
collect2: ld a retourné 1 code d'état d'exécution
这真的很奇怪,因为代码:
printf ("cos pi/2 = %f\n", cos(M_PI/2.0));
(没有 cosrad 功能)效果很好!
有人可能有解决这个问题的想法吗?
谢谢