1) windows 7 64 linux
2) 安裝 cygwin 64 下載相關的庫redis
3) 下載redis 2.8.3源碼windows
wget http://download.redis.io/releases/redis-2.8.3.tar.gzlua
進入到deps目錄,修改文件 deps/hiredis/fmacros.h spa
#ifndef __HIREDIS_FMACRO_H #define __HIREDIS_FMACRO_H #if !defined(_BSD_SOURCE) #define _BSD_SOURCE #endif #if defined(__sun__) #define _POSIX_C_SOURCE 200112L #elif defined(__linux__) || defined(__OpenBSD__) || defined(__NetBSD__) #define _XOPEN_SOURCE 600 #else #define _XOPEN_SOURCE #endif //這是添加的. #if defined(__linux__) || defined(__CYGWIN__) #define _GNU_SOURCE #define _DEFAULT_SOURCE #endif #endif
而後編譯depscode
cd deps ci
make lua linenoise hiredisget
4) 編譯總體代碼源碼
先修改代碼it
A) redis2.8.3/src/fmacros.h
第35行
#if defined(__linux__) #define _GNU_SOURCE #define _DEFAULT_SOURCE #endif
修改成
#if defined(__linux__) || defined(__CYGWIN__) #define _GNU_SOURCE #define _DEFAULT_SOURCE #endif
B) redis2.8.3/src/sds.h
添加修改
#ifdef __CYGWIN__ #define TCP_KEEPCNT 8 #define TCP_KEEPINTVL 150 #define TCP_KEEPIDLE 14400 #endif
修改 redis2.8.3/src/Makefile
找到 -rdynamic 64行左右
FINAL_LDFLAGS+= -rdynamic
前面使用#註釋
#FINAL_LDFLAGS+= -rdynamic
而後在redis2.8.3/目錄下執行make
編譯以後的exe在src/*.exe