win7 64位 vs2010连接redis.lib,发生连接错误

C++语言 码拜 7年前 (2017-05-07) 2176次浏览
本人在window7 64位操作系统下,使用vs2010,编译一个程序,工程是release版64位。编译没有错误,但是在连接redis.lib 是发生连接错误。(说明:redis是2.6版本的)win7 64位 vs2010连接redis.lib,发生连接错误这是redis的编译lib的工程。其中包括连接lib的运行是库等配置都是没有问题的。原因是本人以前在window 32 位编译 32位工程,没有问题。现在把连接报错贴出来

1>-- 已启动生成: 项目: test, 配置: Debug Win32 --
1>LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>hiredis.lib(hiredis.obj) : error LNK2019: 无法解析的外部符号 _strerror_r,该符号在函数 ___redisSetError 中被引用
1>hiredis.lib(net.obj) : error LNK2001: 无法解析的外部符号 _strerror_r
1>hiredis.lib(net.obj) : error LNK2019: 无法解析的外部符号 _replace_setsockopt,该符号在函数 _redisContextSetTimeout 中被引用
1>C:\Users\Administrator\Desktop\test\Debug\test.exe : fatal error LNK1120: 2 个无法解析的外部命令
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

代码更简单:

#include "stdafx.h"
#include "hiredis.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	struct timeval tv;
    int timeout=1000;
	tv.tv_sec = timeout / 1000;
	tv.tv_usec = timeout % 1000;
	redisContext *m_pContext = redisConnectWithTimeout("127.0.0.1",6379,tv);
	if( NULL == m_pContext || m_pContext->err)
	{
		if( NULL != m_pContext)
		{
			cout<<"redisClient connection error:" << m_pContext->errstr<<" ;errcode : "<< m_pContext->err;
			redisFree(m_pContext);
			m_pContext = NULL;
		}
		return -1;
	}
	//redisSetTimeout(m_pContext, tv);
	return 0;
}

求高手解决!

解决方案

40

你认为是 release ,但你贴出来的内容第一行就写明是 debug

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明win7 64位 vs2010连接redis.lib,发生连接错误
喜欢 (0)
[1034331897@qq.com]
分享 (0)