【UE5】- 源码编译(一):UE5.2编译引擎源码 C4756 常量算法中溢出的问题

出现问题:

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

出现原因:

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

对比新版本SDK的“INFINITY”宏的宏定义:

原定义:#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF))

新定义:#define INFINITY ((float)(_HUGE_ENF))

“_HUGE_ENUF”宏并没有改变这一调整导致了常量算法溢出的问题

因此Windows SDKMSVC 的版本对源码编译有所影响。


这里去官方文档查看相应的编译说明,查看UE5.2推荐的 Windows SDK 和 MSVC 的版本

解决办法:

1.回退 SDK 和 MSVC版本

这里查看自己的SDK编译版本:

建议使用与官方推荐版本接近的SDK版本,当前版本与推荐版本存在较大差异。

回退版本:

MSVC版本:

2.更改配置文件让 Visual Studio 使用指定版本编译

当电脑上安装多个 SDK 和 MSVC 版本且需保留其他版本时,虽然 Visual Studio 默认会使用特定版本进行编译,但可以通过配置手动选择所需版本,无需删除其他安装的版本。

修改目录下的:

<USER>/AppData/Roaming/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
    <WindowsPlatform>
        <WindowsSdkVersion>10.0.19041.0</WindowsSdkVersion>
    </WindowsPlatform>
</Configuration>

官方文档中描述还可以修改如下目录:


修改完成后便可以通过编译:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值