Redis编译遇到挫折求助(redis 编译失败)

Redis编译遇到挫折——求助!

黄平ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

Redis是一个高性能的键值对存储系统,被广泛应用于缓存、消息中间件和会话存储等领域。不过,要想自己定制化Redis,就需要对Redis源码进行编译。但是很多人在编译过程中遇到了各种问题,本文将介绍我自己在Redis编译过程中遇到的问题及解决方法。

我使用的是Ubuntu 18.04系统,Redis的版本是5.0.5。我按照Redis的官方文档进行编译,在执行“MAKE”命令时,遇到了下面的错误:

make[1]: Entering directory '/home/user/redis-5.0.5/src'
CC redis-server.o
../deps/hiredis/libhiredis.a(net.o): In function `netSetTcpNoDelay':
net.c:(.text+0x85): undefined reference to `setsockopt'
../deps/hiredis/libhiredis.a(net.o): In function `redisNetTcpConnect':
net.c:(.text+0x1c7): undefined reference to `getaddrinfo'
../deps/hiredis/libhiredis.a(net.o): In function `redisNetWrite':
net.c:(.text+0x2d3): undefined reference to `write'
../deps/hiredis/libhiredis.a(net.o): In function `redisNetRead':
net.c:(.text+0x34f): undefined reference to `read'
../deps/hiredis/libhiredis.a(net.o): In function `redisNetClose':
net.c:(.text+0x3d9): undefined reference to `close'
../deps/hiredis/libhiredis.a(net.o): In function `redisNetResolve':
net.c:(.text+0x407): undefined reference to `getaddrinfo'
collect2: error: ld returned 1 exit status
make[1]: *** [redis-server] Error 1
make[1]: Leaving directory '/home/user/redis-5.0.5/src'
make: *** [all] Error 2

经过查找,我发现这是因为缺少依赖库libevent和hiredis。于是我用apt-get安装了这两个库:

sudo apt-get install libevent-dev
sudo apt-get install libhiredis-dev

然后再次执行make命令,还是出现了错误,但这次的错误是:

make[1]: Entering directory '/home/user/redis-5.0.5/src'
CC anet.o
anet.c:34:10: fatal error: jemalloc/jemalloc.h: No such file or directory
#include
^~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [anet.o] Error 1
make[1]: Leaving directory '/home/user/redis-5.0.5/src'
make: *** [all] Error 2

这个错误提示说“jemalloc/jemalloc.h”文件不存在,是因为Redis5.0以后默认使用的是jemalloc内存分配器,所以我们需要安装jemalloc库。我又通过apt-get安装了jemalloc:

sudo apt-get install libjemalloc-dev

再次执行make命令,终于编译成功了!

通过以上经验,我们可以看到在编译Redis的时候,需要注意库文件的依赖关系以及版本的兼容性等问题。特别是在使用新版本的Redis时,需要注意官方文档中的提示,逐一解决其所需的库文件。

总结

本文介绍了在编译Redis时遇到的问题及其解决方法,希望能对大家有所帮助。更多关于Redis的知识可以参考Redis官方文档,也可以在Redis官方论坛中提问,获得更多的技术支持。

成都网站营销推广找创新互联,全国分站站群网站搭建更好做SEO营销。
创新互联(www.cdcxhl.com)四川成都IDC基础服务商,价格厚道。提供成都服务器托管租用、绵阳服务器租用托管、重庆服务器托管租用、贵阳服务器机房服务器托管租用。

网站名称:Redis编译遇到挫折求助(redis 编译失败)
标题网址:http://www.shufengxianlan.com/qtweb/news26/130676.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联