vs2015 hiredis编译使用

编译环境,win10、vs2015(redis服务器自行开启)

获取redis windows版

github上项目地址

编译hiredis

1.解压redis,打开源码目录中msvs目录中的sln文件

2.redis服务器安装好的前提下,只需要编译下面两个项目即可

vs2015 hiredis编译使用_第1张图片

在此要注意一点,就是32位64位选择,32位使用需要编译32位版本,64位同样。也可两个版本都编译备用。

3.编译完成之后需要对库头文件进行整理,在这里我专门建立了一个文件夹整理头文件(按照自己喜欢的方式整理即可)

引用库文件需要源码中src/Win32_Interop下所有头文件和deps/hiredis下所有头文件(其中fmacros.h用src文件夹下的fmacros.h文件替代),我整理如下所示

vs2015 hiredis编译使用_第2张图片

使用时直接引用include到项目中即可,注意检查头文件中的包含关系。

在工程中使用hiredis

创建工程之后

1.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。

2.添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。

3.然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名

即可成功调用hiredis,示例代码

#include "stdafx.h"

#include 
#include 
#include 

#include 
#include 


int main()
{
	unsigned int j;
	redisContext *c;
	redisReply *reply;

	struct timeval timeout = { 1, 500000 };
	c = redisConnectWithTimeout((char *)"212.64.10.124", 6379, timeout);
	if (c->err)
	{
		printf("Connection error:%s\n", c->errstr);
		exit(1);
	}

	//ping
	reply = (redisReply *)redisCommand(c, "PING");
	printf("PING: %s\n", reply->str);
	freeReplyObject(reply);


	return 0;
}

运行结果如下

vs2015 hiredis编译使用_第3张图片

 

遇到的错误

是因为redis在Posix体系下,off_t被定义成64位,而在windows下被sys\types.h文件定义成32位。在工程属性里定义_OFF_T_DEFINED 即可

vs2015 hiredis编译使用_第4张图片

 

 

你可能感兴趣的:(c++,redis)