Windows使用Cygwin編譯redis以及手動安裝GCC

對這個連接https://blog.csdn.net/johnf_nash/article/details/51794003做補充

 

1. 安裝Cygwin

從Cygwin官網下載安裝程序,下載完成後雙擊開始Cygwin進行安裝。一直點擊下一步,直到出現軟件包管理界面,如下:

                                     

                                     

在輸入框中依次輸入gcc、make,在Devel類型中選擇合適的軟件包,點擊左側的“Skip”,即可選中要安裝的軟件包

                                     

另外,還可以安裝wget(用來下載Redis源代碼),vi編輯器

2.Redis編譯

2.1 打開Cygwin,從地址 http://download.redis.io/redis-stable.tar.gz下載Redis最新的穩定版本(如果是其他版本,可以去http://download.redis.io/releases/找其他版本),使用wget下載,

命令如下:

    wget http://download.redis.io/redis-stable.tar.gz

2.2 Redis源碼下載完成後,使用tar命令進行解壓,命令如下:

   tar xzf redis-stable.tar.gz

2.3 解壓完成後,修改/usr/include/netinet/tcp.h文件,在文件開始的註釋後加入以下宏定義

 

#ifndef TCP_KEEPIDLE
#define TCP_KEEPIDLE 4     /* Start keeplives after this period */
#endif
 
#ifndef TCP_KEEPINTVL
#define TCP_KEEPINTVL 5    /* Interval between keepalives */
#endif
 
#ifndef TCP_KEEPCNT
#define TCP_KEEPCNT 6      /* Number of keepalives before death */
#endif


2.4 接下來修改redis-stable/src/Makefile文件,找到
FINAL_LDFLAGS+= -rdynamic,將這句註釋掉
 

# FINAL_LDFLAGS+= -rdynamic


2.5 然後進入redis所在目錄下的deps目錄,執行make命令
 

make lua hiredis linenoise


2.6 進入到redis所在目錄,執行make命令
 

make &&make install

 

執行完成之後,Redis就編譯完成了
2.7 測試Redis是否編譯完成

在Cygwin窗口中輸入 redis-server.exe 命令,啓動Redis Server

                            
 

補充:

1.如果安裝Cygwin的時候沒有安裝gcc安裝Cygwin時,丟失gcc/g++,解決問題 主要是補裝命令是在windows下cmd,找到安裝文件目錄執行這個命令setup-x86_64.exe -q -P wget -P gcc-g++ -P make -P diffutils -P libmpfr-devel -P libgmp-devel -P libmpc-devel(不過記得複製setup-x86_64.exe到安裝文件目錄下,不然會包找不到setup-x86_64.exe)

2.進入redis的版本目錄,如redis-4.0.0/進行make,報cc: 錯誤:../deps/hiredis/libhiredis.a:No such file or directory
cc: 錯誤:../deps/lua/src/liblua.a:No such file or directory;我們進入hiredis目錄,執行make,同樣報錯net.c: 在函數‘_redisContextConnectTcp’中:net.c:270:21: 錯誤:‘hints’的存儲大小未知struct addrinfo hints, *servinfo, *bservinfo, *p, *b;。我們可以進入去GitHub下載新的替代出問題的。https://github.com/redis/hiredis下載hiredis包,將裏面的文件複製到redis-4.0.0/deps/l中。重新進行make即可。

3.就是結果安裝的是.exe文件,這是屬於window的,如果想編譯成linux所需的文件該怎麼處理呢。

 

補充的思路來源:https://blog.csdn.net/qq_40134016/article/details/81712091https://www.cnblogs.com/LUA123/p/11447163.html

編譯後的redis:https://download.csdn.net/download/lxh123456789asd/11848365

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章