剛開始在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了
參考鏈接:
http://www.aichengxu.com/view/38284
http://blog.csdn.net/swanabin/article/details/42679361