redis2.3.7安装时出现undefined reference to `clock_gettime'
(转自:http://blog.csdn.net/qq_28779503/article/details/54844988)
undefined reference to `clock_gettime' 链接错误的解决思路
错误信息:
centos下安装Redis时报错,报错内容为:
- /home/wm/redis-3.2.7/deps/jemalloc/src/nstime.c:120: undefined reference to `clock_gettime'
发现是在链接的时候出错。经过查找发现clock_gettime在实时库librt(real time)里面,由于链接的时候没有链接这个库导致报错。
解决思路:
只需在我们运行的Makefile文件里面添加动态链接库librt ( -lrt ) ,重新编译即可。
解决方案:
1.查找实时库librt所在路径:
- [root@localhost redis-3.2.7]# find / -name '*librt*'
- /lib/librt-2.12.so
- /lib/i686/nosegneg/librt-2.12.so
- /lib/i686/nosegneg/librt.so.1
- /lib/librt.so.1
- /lib/rtkaio/librtkaio-2.12.so
- /lib/rtkaio/i686/nosegneg/librtkaio-2.12.so
- /lib/rtkaio/i686/nosegneg/librt.so.1
- /lib/rtkaio/librt.so.1
- /usr/lib/librt.so
- /usr/lib/pulse-0.9.21/modules/librtp.so
2.推测可知:librt.so为linkname,librt.so.1为soname,librt-2.12.so为realname
- [root@localhost redis-3.2.7]# ls -l /usr/lib/ |grep 'librt.so'
- lrwxrwxrwx. 1 root root 20 7月 18 2016 librt.so -> ../../lib/librt.so.1
- [root@localhost redis-3.2.7]# ls -l /lib/ |grep 'librt.so.1'
- lrwxrwxrwx. 1 root root 13 7月 13 2016 librt.so.1 -> librt-2.12.so
3.打开/home/wm/redis-3.2.7路径下的Makefile文件:
- vim /home/wm/redis-3.2.7/Makefile
文件内容:
- 1 # Top level makefile, the real shit is at src/Makefile
- 2
- 3 default: all
- 4
- 5 .DEFAULT:
- 6 cd src && $(MAKE) $@
- 7
- 8 install:
- 9 cd src && $(MAKE) $@
- 10
- 11 .PHONY: install
由注释可知:
这个Makefile是顶级的Makefile文件,真正的Makefile文件在src/ makefile路径下
4.打开/home/wangmao/redis-3.2.7/src/路径下的Makefile文件:
- vim /home/wangmao/redis-3.2.7/src/Makefile
从错误信息可知,该错误是编译/home/wm/redis-3.2.7/deps/jemalloc/src/nstime.c文件中的clock_gettime函数时未找到相应的动态链接库而发生的错误。
阅读Makefile文件后可推测应与jemalloc文件夹相关,所以:
- 105 ifeq ($(MALLOC),jemalloc)
- 106 DEPENDENCY_TARGETS+= jemalloc
- 107 FINAL_CFLAGS+= -DUSE_JEMALLOC -I../deps/jemalloc/include
- 108 FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a
- 109 FINAL_LIBS+= /usr/lib/librt.so #此路径加上librt.so
- 110 endif
5.保存Makefile文件后,重新执行Make命令即可成功编译。
另:附上Linux常用的库
libz 压缩库(Z)
librt 实时库(real time)
libm 数学库(math)
libc 标准C库(C lib)
redis2.3.7安装时出现undefined reference to `clock_gettime'的更多相关文章
- undefined reference to `clock_gettime
下面这个错误通常是因为链接选项里漏了-lrt,但有时发现即使加了-lrt仍出现这个问题,使用nm命令一直,会发现-lrt最终指向的文件没有包含任何symbol,这个时候,可以找相应的静态库版本libr ...
- [转] undefined reference to `clock_gettime'
下面这个错误通常是因为链接选项里漏了-lrt,但有时发现即使加了-lrt仍出现这个问题,使用nm命令一直,会发现-lrt最终指向的文件 没有包含任何symbol,这个时候,可以找相应的静态库版本lib ...
- Linux嵌入式学习-Mplayer交叉编译-undefined reference to `clock_gettime' MPlayer
編譯Mplayera. 配置.configure# ./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm --enable-static ...
- [QT_FFMPEG]学习问题: 刚开始移植ffmpeg,测试时出现 undefined reference to `avcodec_configuration()'
使用环境: window: win7 x64 QT: qt5.8.0 MinGW530 移植的教程: 流若浅 Qt ffmpeg环境搭建 : http://www.cnblogs.com/liuru ...
- CentOS安装libxml2报undefined reference to `gzopen64'
主要是记录一下安装时候踩的坑 CentOS在make libxml2的时候,会报这个错误 ./.libs/libxml2.so: undefined reference to `gzopen64' c ...
- gcc链接程序时出现undefined reference to""错误
如:: undefined reference to ‘mq_unlink',意思是指函数mq_unlink没有定义. 可以使用如下步骤找到该函数所在的库: 1).查找哪些库包含了或使用了该函数:gr ...
- 编译nginx时提示undefined reference to 'pcre_free_study' 的问题及解决
./configure --add-module=../ngx_devel_kit-0.2.19/ --add-module=../lua-nginx-module-0.9.19/ --with-l ...
- 解决ndk编译lua时遇到 undefined reference to '__srget'的问题
今天用ndk r10d版本编译lua时,遇到几个错误,提示没有找到__srget 没有定义,于是看了国外的大神的解决方法, 是因为ndk在r10c之后的版本已经将getc函数屏蔽了,所以导致编译器找不 ...
- darknet-yolov3使用opencv3.4.8时,undefined reference 'imshow()'、'waitKey()'、'nameWindows()'
解决办法:暴力卸载 卸载办法:进入到opencv3.4.8的安装目录下:make uninstall 然后重新安装了其他版本的,立马编译通过了.
随机推荐
- NumPy库的基本使用
一.介绍 ——NumPy库是高性能科学计算和数据分析的基础包,它是Pandas及其它各种工具的基础 ——NumPy里的ndarry多维数组对象,与列表的区别是: - 数组对象内的元素类型必须一样 - ...
- VM中python2.7运行skier游戏,shell重启问题!!!!!!
在虚拟机win7系统python2.7,在该python中运行了 父与子中的skier游戏(代码手写), 出现如下问题: ================ RESTART: C:\Python27\S ...
- codevs 1683 车厢重组(水题日常)
时间限制: 1 s 空间限制: 1000 KB 题目等级 : 白银 Silver 题目描述 Description 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工 ...
- Java使用HtmlUnit抓取js渲染页面
需求: 需要采集js渲染的页面,有些网站的页面是js渲染的 实现: 基于HtmlUnit实现: public static void getAjaxPage() throws Exception{ W ...
- select a.no,a.name,b.subid,b.subname,c.score
select a.no,a.name,b.subid,b.subname,c.score from a,b,c where a.no = c.no and b.subid = c.subid ;
- 常用的 Excel 函数
概述 Excel 学的好,函数不可少.接下来就了解常用的函数. 首先作下简要说明: 本文的内容大多从网上搜集并加以个人理解整理而来,由于初学,可能会出现错误,如有欢迎指出: 所用演示软件为免费丑陋的 ...
- struct结构体内存大小
一. 基本原则 1. struct中成员变量的声明顺序,与成员变量对应的内存顺序是一致的: 2. struct本身的起始存储地址必须是成员变量中最长的数据类型的整倍数,注意是最长的数据类型,而不是最长 ...
- CPP-基础:TCHAR
目 录 定义 使用原理 1.定义 TCHAR是通过define定义的字符串宏[1] 2.使用原理 因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码 ...
- scanf函数详解
函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键 ...
- Tarjan求强联通分量+缩点
提到Tarjan算法就不得不提一提Tarjan这位老人家 Robert Tarjan,计算机科学家,以LCA.强连通分量等算法闻名.他拥有丰富的商业工作经验,1985年开始任教于普林斯顿大学.Tarj ...