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'问题解决

时间: 2024-10-25 11:04:17

undefined reference to `sin'问题解决的相关文章

undefined reference to `sin&amp;#39;问题解决

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

undefined reference to `pthread_create&#39;问题解决

在编译pthread有关的程序时,出现undefined reference to `pthread_create'这样的错误. 问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库. 问题解决: 方法一: 在编译中要加 -lpthread参数gcc thread.c -o thread -lpthread

undefined reference to `_init&#39;问题解决

今天利用CDT 的eclipse调试程序,遇到下面的问题: d:/plugin/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7-m\libg_s.a(lib_a-init.o): In function `__libc_init_array':init.c:(.text.__libc_init_array+0x1c): undefined reference to `_init'collect2.exe

&amp;quot;undefined reference to&amp;quot; 问题解决方法

近期在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似以下这种错误: (.text+0x13): undefined reference to `func' 关于undefined reference这种问题,大家事实上常常会遇到,在此,我以具体地演示样例给出常见错误的各种原因以及解决方法,希望对刚開始学习的人有所帮助. 1.  链接时缺失了相关目标文件(.o)     測试代码例如以下: 然后编译. gcc -c test.c gcc –c main.c 得到两个

Debian下undefined reference to ‘pthread_create’问题解决

今天在写线程测试程序(pthread_create)时出现如下问题, 明明在头文件中包含了<pthread.h>,但是仍然提示找不到函数 pthread_create 和 pthread_join,查资料得知, pthread不是linux下的默认库,也就是在链接的时候,无法找到pthread库文件各个函数入口地址,于是链接会失败. 解决方法,在进行gcc编译的时候,附加上 -lpthread 参数. 原文地址:https://www.cnblogs.com/rohens-hbg/p/8616

[Linux] Linux下undefined reference to ‘pthread_create’问题解决

问题的原因:pthread不是Linux下的默认的库,也就是在链接的时候,无法找到phread库中函数的入口地址,于是链接会失败. 解决:在gcc编译的时候,附加要加 -lpthread参数即可解决. 原文地址:https://www.cnblogs.com/zhizhiyu/p/10295013.html

undefined reference to `clock_gettime&#39; 链接错误问题解决

当你编译程序时, 碰到下面的链接错误, timeval.c:(.text+0x6f): undefined reference to `clock_gettime' 则你只需要在你的Makefile文件里面添加    -lrt  ,重新编译即可. undefined reference to `clock_gettime' 链接错误问题解决

[转]&quot;undefined reference to&quot; 问题解决方法

转载未能找到原文出处. 最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助. 1.  链接时缺失了相关目标文件(.o)     测试代码如下: 然后编译. gcc -c test.c gcc –c main.c

&quot;undefined reference to&quot; 多种可能出现的问题解决方法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助. 1.  链接时缺失了相关目标文件(.o)     测试代码如下: 然后编译. gcc -c test.c gcc –c main.c 得到两个 .o 文件,一