一个使用cos()数的程序,报错求解
#include <math.h>
#define PI 3.1416
#define MAX 180
main ()
{
int angle;
float x,y;
angle = 0;
printf(" Angle Cos(angle)\n\n");
while (angle <= MAX)
{
x = (PI/MAX)*angle;
y = cos(x);
printf("%15d %13.4f\n",angle,y);
angle = angle + 10;
}
}
==============================================
[root@gxing sourcecode]# gcc cosfun.c
/tmp/cc2g9KZh.o(.text+0x58): In function `main':
: undefined reference to `cos'
collect2: ld returned 1 exit status
linux GCC编译时报错:这是书本的例子,强人帮看看到到底那里问题? cos()?GCC错误 Linux GCC printf
[解决办法]
使用 gcc -lm 进行编译 GCC 的”-lm”选项,它告诉 GCC 查看系统提供的数学库(libm)。因为Linux和UNIX的系统函数库通常以”lib”为前缀,所以我们假设它存在。真正的函数库位置随系统的不同而不同,但它一般会位于目录/lib或/usr/lib中,在这些目录中还有数以百计的其他必需的系统函数库。
[解决办法]
#include <stdio.h>
#include <math.h>
#define PI 3.1416
#define MAX 180
int main ()
{
int angle;
double x,y;
angle = 0;
printf(" Angle Cos(angle)\n\n");
while (angle <= MAX) {
x = (PI/MAX)*angle;
y = cos(x);
printf("%15d %13.4lf\n",angle,y);
angle = angle + 10;
}
return 0;
}