GCC编译失败--sin


直接使用 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中,建立一个工程就就可以编译通过。

源程序如下:

  1. //Gen.c   
  2. #include<stdio.h>   
  3. #include<stdlib.h>   
  4. #include<math.h>   
  5. #define PI 3.1415926   
  6.   
  7. int main()  
  8. {  
  9.     double step = 1.0/20;  
  10.     double t=0;  
  11.     double y=0;  
  12.     int d=0;  
  13.     while(t<100)  
  14.     {  
  15.         y=sin(2*PI*1*t)+sin(2*PI*3*t);  
  16.         y*=32767;  
  17.         d=(int)y;  
  18.         d=d&0xFFFF;  
  19.         printf("%X\n",d);  
  20.         t+=step;  
  21.     }  
  22.     return 0;  
  23. }  

解决方法: gcc -o Gen Gen.c -lm

-lm 表示加载 libm.so 这个数学库

相关内容