出现问题
在编译 UE5.2 引擎源码时,遇到多行 C4756 警告,提示 常量算法中溢出问题。报错信息如下:

出现原因
检查报错代码时,发现每段代码都包含 'INFINITY' 的宏定义,这很可能就是导致错误的原因。


对比新版本 SDK 的 'INFINITY' 宏的宏定义:
原定义:
#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF))新定义:#define INFINITY ((float)(_HUGE_ENF))'_HUGE_EBUF'宏并没有改变,这一调整导致了常量算法溢出的问题。
因此 Windows SDK 和 MSVC 的版本对源码编译有所影响。
这里去 官方文档 查看相应的编译说明,查看 UE5.2 推荐的 Windows SDK 和 MSVC 的版本。


解决办法
1. 回退 SDK 和 MSVC 版本
这里查看自己的 SDK 编译版本:







