error C2062: 意外的类型“__int64”

今天升级了一下公司的项目 vs2013 qt5.9.0 osg 3.4.1 升级到 vs2017 qt5.12.10 osg3.6.5,升级后编译的时候报错

error C2062: 意外的类型“__int64”

error C3805: “类型”: 意外标记,应输入“}”或者“,”

error C2039: “UNDEFINED”: 不是“osg::Uniform”的成员

 

点击后发现是在Uniform 文件的一个枚举INT64 对比老版本的文件发现没有此枚举

所以考虑可能有些文件和这个枚举冲突导致,后来通过慢慢的注释掉其他头文件引用,排查到引用的一个第三方库中的头文件中

有一个宏导致的冲突#define INT64           __int64

对此的解决办法,可以调整头文件的包含顺序,可以保证编译通过,但不清楚会不会给程序埋下隐患

 

思考:尽量不要在头文件中使用宏

你可能感兴趣的:(疑难杂症)