天天看點

windows下vs2013使用C++通路redis

剛開始在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