Chinaunix首页 | 论坛 | 博客
  • 博客访问: 843058
  • 博文数量: 71
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 2609
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 12:07
个人简介

樽中酒不空

文章分类

全部博文(71)

文章存档

2017年(2)

2016年(2)

2015年(7)

2014年(11)

2013年(13)

2012年(18)

2011年(2)

2010年(16)

分类: C/C++

2012-02-02 07:50:31

Redis官方正式版本没有VC版本,MS利用libUV自己做了一个,官方给了链接。见http://redis.io/download。
安装前的准备和libUV一样,毕竟Redis VC版本也用的libUV。不过可能需要安装一下curl 。

打开windows版本链接,进行https://gist.github.com/1439660。
按上面的说明:
  • On your computer create a working folder and cd into it.
  • Clone antirez/redis repository:

    git clone https://github.com/antirez/redis.git


然后,

cd redis git checkout 3fac86ff1d

  • git checkout -b 2.4_win_uv

这个命令可能会有错误,文档提示can ignored。
也可以用curl:

curl https://raw.github.com/gist/1439660/d729b823a7ef50ef8ba54393675fb678e740ca4b/redis24_win_uv.patch | git am

如果curl支持openssl的话,会提示什么签名证书有问题,可以根据提示,带上参数 --insecure,也就是

curl --insecure https://raw.github.com/gist/1439660/d729b823a7ef50ef8ba54393675fb678e740ca4b/redis24_win_uv.patch | git am。

补丁安装完后,在msvs下面会生成.sln解决方案,可以用vc2010打开浏览代码。这时还不能编译,因为一般电脑上都没有pthread相关文件。pthread-win32在多平台开源代码中很常见,就是把win32的编程函数封装成pthread风格的。可以从ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.exe.这里下载,不用运行,直接解压就可以,这是自解压文件。然后,可以直接用里面的lib和dll,也可以自己编译一个。把include和lib按要求复制到deps目录:From your local folder, copy all the files from Pre-built.2/include to your redis folder under deps/pthreads-win32/include (the directory needs to be created).

lib和dll有多个,要使用带pthreadVC2.dll和pthreadVC2.lib。如果想省事,可以把pthreadVC2.lib改名成pthread.lib。pthreadVC2.dll不要改名,直接放在msvs目录下,如果要直接运行,需要和.exe放在同级目录。Redis说明要求编译成静态lib,就不需要dll了。根据个人爱好来定,个人感觉用dll好。

然后就是打开RedisServer.sln调试代码了。

阅读(12981) | 评论(6) | 转发(0) |
0

上一篇:nodejs编译

下一篇:libUV(libev)的idle回调

给主人留下些什么吧!~~

sxcong2012-05-30 13:36:21

austinsailor: 你好,我试了下你说的,好像碰到问题了,你自己已经搞定了吧,能不能把下载的东东发送我邮箱了 austin@qq.com,向你学习:).....
发了
我生成的是vc2010的工程,直接编译就可以

sxcong2012-05-30 13:30:17

austinsailor: 补丁打失败了,这个怎么办了。.....
"git checkout -b 2.4_win_uv

这个命令可能会有错误,文档提示can ignored。"

文档上说,git checkout -b 2.4_win_uv这个命令可以忽然。

austinsailor2012-05-27 13:45:06

补丁打失败了,这个怎么办了。

austinsailor2012-05-27 13:44:32

e:/redis-win32/redis/.git/rebase-apply/patch:695: trailing whitespace.
#ifdef _WIN32
e:/redis-win32/redis/.git/rebase-apply/patch:696: trailing whitespace.
    WSADATA t_wsa;
e:/redis-win32/redis/.git/rebase-apply/patch:698: trailing whitespace.
    int iError = WSAStartup(wVers, &t_wsa);
e:/redis-win32/redis/.git/rebase-apply/patch:704: trailing whitespace.

e:/redis-win32/redis/.git/rebase-apply/patch:706: trailing

austinsailor2012-05-27 13:43:13

git checkout 3fac86ff1d 这个失败的,不过你说是可以忽略的。

评论热议
请登录后评论。

登录 注册