Cygwin 環境中編譯安裝 Redis-3.0.x

  • 第 0 步,給 Cygwin 環境安裝 gcc、make。linux

  • 第 1 步,修改/usr/include/netinet/tcp.h文件,在後邊添加這幾個宏定義:redis

#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 步,修改 redis-3.0.x/src/fmacros.h 文件,在前面加入這一個宏定義:
/* Cygwin Fix */
#ifdef __CYGWIN__
#ifndef SA_ONSTACK
#define SA_ONSTACK 0x08000000
#endif
#endif
  • 第 3 步,修改 redis-3.0.x/src/Makefile 文件,轉到第 73 行,(用 # 號)註釋掉:
# FINAL_LDFLAGS+= -rdynamic // <-- 添加 # 把這行註釋掉
  • 第 4 步,到 redis-3.0.x/deps 目錄下運行 make 命令:
$ cd redis-3.0.x/deps
$ make lua hiredis linenoise
  • 第 5 步,回到 redis-3.0.x 目錄運行 make 命令:
$ make && make install
  • 第 6 步,啓動 redis 服務器和客戶端:
$ redis-server.exe
$ redis-cli.exe

#錯誤處理服務器

遇到 error: unknown type name ‘u_short’,tcp

修改 fmacros.h 文件,把判斷 linux 的地方,增長判斷 CYGWIN。例如:this

#if defined(__linux__)
#define _GNU_SOURCE
#define _DEFAULT_SOURCE
#endif

改爲:lua

#if defined(__linux__) || defined(__CYGWIN__) // <-- 在這裏增長判斷 CYGWIN
#define _GNU_SOURCE
#define _DEFAULT_SOURCE
#endif

另外,還須要修改 deps/hiredis/fmacros.h,也要增長判斷 CYGWIN:code

#if defined(__linux__) || defined(__CYGWIN__)
#define _GNU_SOURCE
#define _DEFAULT_SOURCE
#endif

保存文件後,從新執行第 4 步和第 5 步!server

相關文章
相關標籤/搜索