undefined reference to `sin'问题解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"

以上是关于undefined reference to `sin&#39;问题解决的主要内容,如果未能解决你的问题,请参考以下文章

lib1funcs.S(用于解决裸板实现 printf 中的问题: undefined reference to `__aeabi_uidivmod' 和 undefined referenc

eclipse 报错:93: undefined reference to

undefined reference to异常怎么解决

undefined reference to xxx

undefined reference to异常怎么解决

ubuntu下调试ffmpeg程序出现undefined reference to pthread_once ,undefined reference to uncompress错误