当前位置: 首页 > news >正文

自己编译unreal angelscript 5.4

自己编译unreal angelscript 5.4

报错常量中的是enderGraphPrivate.cpp(189): error C4756: 常量算法中溢出
1> while compiling GetClobberValue

解决办法:

  1. 定位文件:
    找到你引擎目录下的:
    Engine/Source/Runtime/RenderCore/Private/RenderGraphPrivate.cpp

  2. 查找函数:
    搜索 GetClobberValue 函数。它应该长这样:

     
    static float GetClobberValue()
    {
        // 原始代码可能直接返回一个巨大的数值
        return ...; 
    }
  3. 应用修复:
    为了规避编译器的常量溢出检查,你可以使用位转换(Bit Cast)的方法,或者通过预处理器指令临时禁用警告。

     

    推荐方法 A:使用位模式(更为稳健)
    将该函数修改为使用整数位模式来构造浮点数,这样编译器就不会在预编译阶段进行常数量化计算。

     
    static float GetClobberValue()
    {
        // 使用 0xFFFFFFFF 产生的 NaN 或极值,通过取值绕过常量溢出检查
        const uint32 Pattern = 0xFFFFFFFF;
        float Output;
        FMemory::Memcpy(&Output, &Pattern, sizeof(uint32));
        return Output;
    }