欢迎使用CSDN-markdown编辑器
来源:互联网 发布:简单订餐系统asp源码 编辑:程序博客网 时间:2024/05/29 07:28
1.windows编译redis
1.1下载
微软维护了一个windows版本,地址在https://github.com/MSOpenTech/redis
The Redis project does not officially support Windows.
However, the Microsoft Open Tech group develops and maintains this Windows port targeting Win64.
redis官方不支持windows编译,但是微软维护了一个windows版本。既然这个出现在redis官网上,想必也是认可的。最起码用来研究学习时没问题的。
1.2 编译
可以用vs2015 直接打开工程文件
- server:”\redis-2.8_win\msvs\RedisServer.sln”
- Hiredis异步例子:”\redis-2.8_win\msvs\HiredisExample\HiredisExample.sln”
server 很顺利的编译通过,但是Hiredis异步例子编译时报了一个错误,是个类型重定义错误。
>\src\win32_interop\win32_types.h(37): error C2371: 'off_t': redefinition; different basic types>c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\sys\types.h(42): note: see declaration of 'off_t'
很明显,是自己定义的类型和默认的类型重复了。打开 win32_types.h 文件看看:
/* The Posix version of Redis defines off_t as 64-bit integers, so we do the same. * On Windows, these types are defined as 32-bit in sys/types.h under and #ifndef _OFF_T_DEFINED * So we define _OFF_T_DEFINED at the project level, to make sure that that definition is never included. * If you get an error about re-definition, make sure to include this file before sys/types.h, or any other * file that include it (eg wchar.h). * _off_t is also defined #ifndef _OFF_T_DEFINED, so we need to define it here. * It is used by the CRT internally (but not by Redis), so we leave it as 32-bit. */
原来,微软团队发现redis在Posix体系下,off_t被定义成64位,而在windows下被sys\types.h文件定义成32位。
sys\types.h
#ifndef _OFF_T_DEFINED #define _OFF_T_DEFINED typedef long _off_t; // file offset value #if !__STDC__ typedef _off_t off_t; #endif#endif
然后windows团队就在工程属性里定义了_OFF_T_DEFINED (So we define _OFF_T_DEFINED at the project level),使32位的不生效,用自己定义在文件的,但是为什么还是出现重定义了呢?
因为他们忘记在工程属性里定义啦,加回来就行拉。。。忘记定义了这个宏,所以默认的就生效了,自己也定义一份,当然编不过了。。
转载自:http://www.fpstop.com/redis/windows%E7%BC%96%E8%AF%91redis/
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- Git的进阶
- C/C++_log2000_幸运周期
- inode节点查找
- 通过HttpURLConnection获取网页信息
- 【SSH网上商城】框架
- 欢迎使用CSDN-markdown编辑器
- 复选框的全选反选实现(即购物车的复选框实现)
- ssh免密码登录
- 朴素贝叶斯算法
- java中的try,catch,finally用法
- C++ static关键字
- 卷积层感受野和坐标映射
- 转:Linux 环境使用vim搭建php IDE -- 提高代码编写数度数倍!手把手教你打造程序员的上古神器VIM!
- .gitignore详解