• undefined reference to `sin'问题解决


      作者:zhanhailiang 日期:2014-10-25

    使用gcc编译例如以下代码时报“undefined reference to `sin'”:

    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
     
    main () {
        double a = sin(1);
        exit (0);
    }
    [root@~/wade/codeReview/learningc/9]# gcc -o timetest timetest.c 
    /tmp/ccIzIHF7.o: In function `func':
    timetest.c:(.text+0x3f): undefined reference to `sin'
    collect2: ld returned 1 exit status

    通常是由于缺少数学库导致,仅仅须要在编译时手动加入gcc libm.so库就可以。例如以下:

    [root@~/wade/codeReview/learningc/9]# gcc timetest.c -lm -o timetest
    [root@~/wade/codeReview/learningc/9]# ./timetest

    当中,通过-l指定对应库的路径,默觉得系统库路径,如/lib和/usr/lib64(64位)(这个默认系统库路径值待笔者确认后再改动),linux下的库统一命名规范都是lib***.so,故-lm表示gcc默认到系统库路径下去查到libm.so库,例如以下:

    [root@/usr/lib64]# find /usr/lib64/ |grep "libm.so"
    /usr/lib64/libm.so
    [root@/usr/lib64]# find /lib |grep "libm.so"
  • 相关阅读:
    TweenAlpha的使用
    NGUI Slider
    Unity 在Resources加载类型的文件
    NGUI-UIProgressBar
    unity NGUI Grid
    我靠 什么鬼
    unity判断平台
    unity和Android交互
    unity导出的Android工程导入eclipse时报错
    实现播放完Animate后执行一个方法
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5170015.html
Copyright © 2020-2023  润新知