Building Redis for use on Cygwin(转)
This is the second time I have installed Redis for use on Cygwin in the last several months. It seems that each time the version numbers change, I step in a different hole. For those of you using Cygwin (DLL version 1.7.17-1) and Redis version 2.6.9, I hope to share my experience with you so that you can save some time.
First, make sure that you have the “make” and “gcc” Cygwin packages installed. Then, open up a Cygwin terminal window and then download and extract Redis using the following commands:
|
1
2
3
4
|
$ wget http://redis.googlecode.com/files/redis-2.6.9.tar.gz$ tar xzf redis-2.6.9.tar.gz$ cd redis-2.6.9$ cd src |
Then, within the src directory, add the following to the redis.h file:
|
1
2
3
4
5
6
7
8
9
|
#ifdef __CYGWIN__#ifndef SA_ONSTACK#define SA_ONSTACK 0x08000000#endif#endif #if defined(__CYGWIN__)#define strtold(a,b) ((long double)strtod((a),(b)))#endif |
I added the code above right before the “Data types” comment (Before line 312). The first five lines resolve the`SA_ONSTACK' undeclared error originally identified here. If you were to run make with this solution only, you would bump into the next error: undefined reference to `_strtold'. The last three lines address this error.
Ignoring warnings, make will generate the following executables in the src directory:
- redis-benchmark.exe
- redis-check-aof.exe
- redis-check-dump.exe
- redis-cli.exe
- redis-sentinel.exe
- redis-server.exe
Copy these files into Cygwin’s bin directory. To quickly test that Redis works, type in redis-server to start Redis with default options. In another Cygwin terminal window, start the Redis command line interface by typing redis-cli. At the prompt, simply type “ping“. If Redis is up and running, it should simply reply with “PONG“.
Enjoy!
http://blog.joshuawhite.com/open-source/building-redis-for-use-on-cygwin/

浙公网安备 33010602011771号