最近在windows上编译dlib静态库文件的时候,发现系统自带的basetsd.h文件和 Anaconda2中jmorecfg.h头文件中的定义相冲突。
这里建议第二种修改方法。
产生问题:basetsd.h(72): error C2371: “INT32”: 重定义;不同的基类型
将jmorecfg中定义的typedef long INT32 改成typedef long INT32B即可。
仔细阅读jmorecfg.h冲突代码可以发现,如果已经定义了_BASETSD_H等就不会再定义typedef long INT32,所以可以在这一段代码的前面提前包含进去:即引入<windows.h>
#include <Windows.h> /* Added by wujiyang 2017.2.11 14:18 complier dlib for face recognition */
#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */
#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */
#ifndef _BASETSD_H /* MinGW is slightly different */
#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */
typedef long INT32;
#endif
#endif
#endif
#endif
这里建议第二种修改方法。