redefinition errors in Win32_FDAPI.h

May 16, 2016


最近有需求,程序A需要通过socket与程序B通信,接收程序B的数据,然后写入Redis,环境是windows,c++,hiredis,winsock

在程序编译过程中碰到一些错误,在此记录下来。

错误如下:

错误原因

出现错误的原因是,MS为redis开发windows版本的redis中,重定义了一些函数,导致了这些错误,如下:

hiredis定义

错误解决方法:

https://github.com/MSOpenTech/redis/issues/225

将包含的hiredis.h的代码与包含winsock2.h的代码,分开写在两个源代码文件中,然后重新编译即可。

另外,如果程序多重库链接错误,可能需要强制忽略多余的库链接(此种方法比较不一定适合,但在我的代码中管用)


上一篇博客:Python中的函数参数传递问题
下一篇博客:MD5+salt密码保存方案