cygwin64 编译 redis2.8.3源码

匆匆过客 提交于 2020-03-01 13:00:48

1) windows 7 64 

2) 安装 cygwin 64 下载相关的库

3) 下载redis 2.8.3源码

    wget http://download.redis.io/releases/redis-2.8.3.tar.gz

    进入到deps目录,修改文件 deps/hiredis/fmacros.h 

#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

然后编译deps

cd deps 

make lua linenoise hiredis

4) 编译整体代码

  先修改代码

  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


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!