UE4插件开发引用第三方库问题总结

1.Windows平台类型冲突

INT,UINT,DWORD ,FLOAT,TRUE ,FALSE 宏冲突

#include "Windows/AllowWindowsPlatformTypes.h"
你的头文件
#include "Windows/HideWindowsPlatformTypes.h"

2.自增自减锁冲突

InterlockedIncrement,InterlockedDecrement类一些列锁冲突

#include "Windows/AllowWindowsPlatformAtomics.h"
你的头文件
#include "Windows/HideWindowsPlatformAtomics.h"

3.第三方库引起的警告

THIRD_PARTY_INCLUDES_START
你的头文件
THIRD_PARTY_INCLUDES_END

以上部分可以合并在一起,写成:


#if PLATFORM_WINDOWS
#include "Windows/AllowWindowsPlatformTypes.h"
#include "Windows/AllowWindowsPlatformAtomics.h"
THIRD_PARTY_INCLUDES_START
你的头文件
THIRD_PARTY_INCLUDES_END
#include "Windows/HideWindowsPlatformAtomics.h"
#include "Windows/HideWindowsPlatformTypes.h"
#endif

4.宏重定义的问题

CONSTEXPR,check,dynamic_cast,PI四个宏会出现重定义的问题,在包含头文件前使其无效化,然后恢复有效化就行了。

#if PLATFORM_WINDOWS
#pragma push_macro("CONSTEXPR")
#undef CONSTEXPR
#pragma push_macro("check")
#undef check
#pragma push_macro("dynamic_cast")
#undef dynamic_cast
#pragma push_macro("PI")
#undef PI
你的头文件
#pragma pop_macro("PI")
#pragma pop_macro("check")
#pragma pop_macro("dynamic_cast")
#pragma pop_macro("CONSTEXPR")
#endif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。