歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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 這個數學庫

Copyright © Linux教程網 All Rights Reserved