刚开始在windows下使用c++访问reids各种报错,经过网上到处搜方案,终于可以在windows下访问redis了,
特将注意事项记录下来:
1.获取redis Window下的开发库源码,从github获取
windows版:https://github.com/MSOpenTech/redis/tree/2.6
2.解压下载的压缩包,进入msvs目录下,用vs2013打开RedisServer.sln解决方案
3.编译hiredis项目,生成hiredis.lib静态库
4.在自己的工程中使用c++ 访问hiredis
(1)设置项目属性 c/c++ -》代码生成为多线程条调试 MTD
(2)将库源码(github上面下载的)中deps\hiredis路径下的头文件,主要是hireids.h包含到自己的路径中
(3)将hiredis.lib, ws2_32.lib两个静态库添加到项目的依赖项中
(4)此时编译会提示类似于_strerror等未定义的错误,需要将redis-2.6\src目录下的win32fixes.h 和win32fixes.c拷贝到自己的工程目录下,并添加到工程文件中参与编译和链接
(5)此时还不够,需要定义几个宏,项目设置-》C/C++ -》预处理器,添加一下宏定义
WIN32 _DEBUG _LIB _WIN32 _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE _CRT_SECURE_NO_DEPRECATE
(6)此时编译还会报错:error C4996, 继续项目设置:连接器 -》 命令行 中添加 /NODEFAULTLIB:libcmt.lib
(7)包含头文件 时需要注意, 应该按照如下方式包含:
#include "hiredis.h"
#define NO_QFORKIMPL //这一行必须加才能正常使用
#include "win32fixes.h"
(8) main函数中初始化网络环境
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 1), &wsaData);
(9)现在可以开始写自己的项目代码并访问redis了