直接使用 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
但是把這個程序復制到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 這個數學庫