basetsd.h(72): error C2371: “INT32”: 重定义;不同的基类型

来源:互联网 发布:华罗庚的优化法时间 编辑:程序博客网 时间:2024/06/14 07:05
最近在windows上编译dlib静态库文件的时候,发现系统自带的basetsd.h文件和 Anaconda2中jmorecfg.h头文件中的定义相冲突。

产生问题:basetsd.h(72): error C2371: “INT32”: 重定义;不同的基类型


修改方法1:

将jmorecfg中定义的typedef long INT32 改成typedef long INT32B即可。


修改方法2:

仔细阅读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

这里建议第二种修改方法。

0 0
原创粉丝点击