error C2371: “INT32”: 重定义;不同的基类型

xiaoxiao2021-02-28  114

转载原文博客:http://blog.csdn.net/u013078356/article/details/54999361

最近在windows上编译dlib-19.1静态库文件的时候,发现系统自带的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,所以可以在这一段代码的前面提前包含进去:即引入#include <Windows.h>

打开jmorecfg.h程序增加一行即可:

#include <Windows.h>       //需要我们自己添加上 #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

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

转载请注明原文地址: https://www.6miu.com/read-23543.html

最新回复(0)