直接使用 gcc -o Gen Gen.c 需到如下错误
Gen.c:(.text+0x46): undefined reference to `sin'
Gen.c:(.text+0x61): undefined reference to `sin'
collect2: ld returned 1 exit status
Gen.c:(.text+0x46): undefined reference to `sin'
Gen.c:(.text+0x61): undefined reference to `sin'
collect2: ld returned 1 exit status
但是把这个程序复制到CodeBlock中,建立一个工程就就可以编译通过。
源程序如下:
//Gen.c
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define PI 3.1415926
int main()
{
double step = 1.0/20;
double t=0;
double y=0;
int d=0;
while(t<100)
{
y=sin(2*PI*1*t)+sin(2*PI*3*t);
y*=32767;
d=(int)y;
d=d&0xFFFF;
printf("%X\n",d);
t+=step;
}
return 0;
}
解决方法: gcc -o Gen Gen.c -lm
-lm 表示加载 libm.so 这个数学库