redis3.2.7编译安装出现的小问题

By | 2018年11月21日

编译redis3.2.7的时候,make出现以下错误:

../deps/jemalloc/lib/libjemalloc.a(nstime.o):Infunction`nstime_get’:
/usr/local/src/redis-3.2.7/deps/jemalloc/src/nstime.c:120:undefinedreferenceto`clock_gettime’
collect2:ldreturned1exitstatus
make[1]:***[redis-server]Error1
make[1]:Leavingdirectory`/usr/local/src/redis-3.2.7/src’
make:***[all]Error2

查了一下资料,发现是类库问题

on older linux systems,clock_gettime() is in librt rather than libc.

也就是说在版本比较老的linux系统中,clock_gettime这个函数是在librt库中的函数。

redis3.2.7调用的可能是新版的,所以需要在Makefile中指定

修改../redis-3.2.7/src/Makefile

FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a

改为

FINAL_LIBS+= ../deps/jemalloc/lib/libjemalloc.a -lrt

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注