windows c语言 redis,windows上使用VS2012 C++语言调用Redis的解决方案
最近我在VS2012上進行Redis開發遇到一些困擾. 編譯Redis的lib庫沒問題。但是使用這些lib庫就不太順利了. 在網上查來查去也沒解決。不過其實Redis的客戶端項目RedisCli.vcxproj,就是一個最好的使用例子. 我把幾個需要注意的地方貼出來
注意事項1. 鏈接器->輸入->忽略所有默認庫: 應該設置為"否"
這里不能選擇"是 (/NODEFAULTLIB)" 否則會產生如下錯誤(這只是其中的一部分)
1>win32fixes.obj : error LNK2019: 無法解析的外部符號 ___report_rangecheckfailure,該符號在函數 _wsa_strerror 中被引用
1>hiredis.lib(hiredis.obj) : error LNK2001: 無法解析的外部符號 ___report_rangecheckfailure
1>win32fixes.obj : error LNK2019: 無法解析的外部符號 __beginthreadex,該符號在函數 _pthread_create 中被引用
1>win32fixes.obj : error LNK2019: 無法解析的外部符號 __endthreadex,該符號在函數 _win32_proxy_threadproc@4 中被引用
1>win32fixes.obj : error LNK2019: 無法解析的外部符號 __cwait,該符號在函數 _wait3 中被引用
1>win32fixes.obj : error LNK2019: 無法解析的外部符號 __errno,該符號在函數 _replace_ftruncate 中被引用
注意事項2: 你的工程文件需要引入win32fixes.c.
如果沒有引入win32fixes.c.則會產生如下錯誤.
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>D:\work\MOM\RedisTest\Debug\Test.exe : fatal error LNK1120: 2 個無法解析的外部命令
注意事項3:如果你的項目使用了預編譯頭,那么win32fixes.c也需要添加預編譯頭include "stdafx.h".
有可能還會遇到變量和函數重定義的問題. 比如sleep函數.BOOLEAN類型等。最好單獨的把Redis封裝成一個類庫使用.獨立在exe項目之外.
總結
以上是生活随笔為你收集整理的windows c语言 redis,windows上使用VS2012 C++语言调用Redis的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浙南联合训练赛20180414
- 下一篇: MVC架构模式(2)