码迷,mamicode.com
首页 > 其他好文 > 详细

undefined reference to `sin'问题解决

时间:2014-10-25 02:04:07      阅读:521      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   io   os   ar   使用   strong   sp   

  作者: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"

undefined reference to `sin'问题解决

标签:style   http   color   io   os   ar   使用   strong   sp   

原文地址:http://blog.csdn.net/billfeller/article/details/40440853

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!