新聞中心
Redis編譯遇到挫折——求助!

黃平ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!
Redis是一個(gè)高性能的鍵值對(duì)存儲(chǔ)系統(tǒng),被廣泛應(yīng)用于緩存、消息中間件和會(huì)話存儲(chǔ)等領(lǐng)域。不過(guò),要想自己定制化Redis,就需要對(duì)Redis源碼進(jìn)行編譯。但是很多人在編譯過(guò)程中遇到了各種問(wèn)題,本文將介紹我自己在Redis編譯過(guò)程中遇到的問(wèn)題及解決方法。
我使用的是Ubuntu 18.04系統(tǒng),Redis的版本是5.0.5。我按照Redis的官方文檔進(jìn)行編譯,在執(zhí)行“MAKE”命令時(shí),遇到了下面的錯(cuò)誤:
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
經(jīng)過(guò)查找,我發(fā)現(xiàn)這是因?yàn)槿鄙僖蕾噹?kù)libevent和hiredis。于是我用apt-get安裝了這兩個(gè)庫(kù):
sudo apt-get install libevent-dev
sudo apt-get install libhiredis-dev
然后再次執(zhí)行make命令,還是出現(xiàn)了錯(cuò)誤,但這次的錯(cuò)誤是:
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
這個(gè)錯(cuò)誤提示說(shuō)“jemalloc/jemalloc.h”文件不存在,是因?yàn)镽edis5.0以后默認(rèn)使用的是jemalloc內(nèi)存分配器,所以我們需要安裝jemalloc庫(kù)。我又通過(guò)apt-get安裝了jemalloc:
sudo apt-get install libjemalloc-dev
再次執(zhí)行make命令,終于編譯成功了!
通過(guò)以上經(jīng)驗(yàn),我們可以看到在編譯Redis的時(shí)候,需要注意庫(kù)文件的依賴關(guān)系以及版本的兼容性等問(wèn)題。特別是在使用新版本的Redis時(shí),需要注意官方文檔中的提示,逐一解決其所需的庫(kù)文件。
總結(jié)
本文介紹了在編譯Redis時(shí)遇到的問(wèn)題及其解決方法,希望能對(duì)大家有所幫助。更多關(guān)于Redis的知識(shí)可以參考Redis官方文檔,也可以在Redis官方論壇中提問(wèn),獲得更多的技術(shù)支持。
成都網(wǎng)站營(yíng)銷推廣找創(chuàng)新互聯(lián),全國(guó)分站站群網(wǎng)站搭建更好做SEO營(yíng)銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價(jià)格厚道。提供成都服務(wù)器托管租用、綿陽(yáng)服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽(yáng)服務(wù)器機(jī)房服務(wù)器托管租用。
新聞標(biāo)題:Redis編譯遇到挫折求助(redis 編譯失?。?
本文路徑:http://www.dlmjj.cn/article/djiehji.html


咨詢
建站咨詢
