gcc编译失败--sin

来源:互联网 发布:java集合框架总结 编辑:程序博客网 时间:2024/05/17 01:07
直接使用 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.1415926int 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 这个数学库




原创粉丝点击