Redis make編譯報錯解決方法


在linux環境下安裝redis,在make編譯步驟報如下錯誤信息:

 

[root@centos6 redis-3.2.6]# make

cd src && make all

make[1]: Entering directory `/var/redis-3.2.6/src'

  CC adlist.o

/bin/sh: cc: command not found

make[1]: *** [adlist.o] Error 127

make[1]: Leaving directory `/var/redis-3.2.6/src'

make: *** [all] Error 2

 

錯誤原因: 原來Linux系統沒有裝gcc,而Redis是C實現的,所以需要gcc來進行編譯。

1、報錯一  沒用gcc

安裝過程
    yum install cpp
    yum install binutils
    yum install glibc
    yum install glibc-kernheaders
    yum install glibc-common
    yum install glibc-devel
    yum install gcc
    yum install make

    yum install tcl

注意gcc依賴了很多東西,有些包可能系統已經 裝了,有些沒有,防止出意外,最好都走一遍

 

2、報錯二,沒有tcl8.5, 安裝tcl8.5,過程如下

下載地址:http://downloads.sourceforge.net/tcl/tcl8.5.10-src.tar.gz

安裝過程

tar -zxvf  tcl8.5.tar.gz

./configure

make

make install

3、安裝redis

make

make test  //檢查一下,看看有沒有問題

make install

 

如果make繼續報錯,信息如下:error: jemalloc/jemalloc.h: No such file or directory

執行 make MALLOC=libc 就行

注意的是,為了防止出意外,make失敗后在make的話,清理一下,執行make clean

 

下面是一些介紹:

Redis2.6已經發布了(http://redis.io/download),下載后,在make時一堆編譯錯誤,后來看issue,跟linux系統版本及位數有關。

昨天作者 antirez發布了2.6.2,此版本修復了一些linux版本不兼容導致make不通過的問題,可是下下來以后,發現在測試機編譯還是有些問題,與是 在issue上提出一個問題:(https://github.com/antirez/redis/issues/736#issuecomment- 9848046) 早上來的時候,看到大牛們熱心的回復,真的很感動。在測試機上,由於系統 是32位的,導致編譯時沒通過,首先我立馬確定了這個問題,在64位測試機上測試時,發現果然編譯可以通過,然后在32位上,跟據提示,在 Makefile中增加一條CFLAGS= -march=i686,編譯也順利通過了,頓時感覺舒暢很多!

下載地址:http://redis.googlecode.com/files/redis-2.6.2.tar.gz

然后tar, make,即可。(make前,如果確認自己的測試機是32位linux,在src/Makefile文件中的頭部加上CFLAGS= -march=i686,可參考isSUSE中相關回答)

修改對應的redis.conf,然后啟動,即可進行測試了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM