首页 > 代码库 > undefined reference to `sin'问题解决
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'问题解决
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。