CesiumGS / cesium-unreal

Bringing the 3D geospatial ecosystem to Unreal Engine

Home Page:https://cesium.com/platform/cesium-for-unreal/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Package error in Windows with UE 5.3.2

ZhengzhongSun opened this issue · comments

Plugin version: Cesium for Unreal v2.7.0

Seems the same problem with here

Any suggestion about it? Thanks!

Error log:
[1/3] Compile [x64] Module.CesiumHelper.cpp F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(12): error C4003: 类函数宏的调用“max”参数不足 F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(58): error C4003: 类函数宏的调用“max”参数不足 F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(65): error C4003: 类函数宏的调用“max”参数不足 F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(12): error C2589: “(”:“::”右边的非法标记 F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\MovieSceneComponentAccessors.h(38): note: 查看对正在编译的 类 模板 实例化“TRelativePtr<void,uint32>”的引用 F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(12): error C2062: 意外的类型“unknown-type” F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(12): error C2789: “TRelativePtr<void,uint32>::NullValue”: 必须初始化常量限定类型的对象 F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(12): note: 参见“TRelativePtr<void,uint32>::NullValue”的声明 F:\UE_5.3\Engine\Source\Runtime\MovieScene\Public\EntitySystem\RelativePtr.h(12): error C2059: 语法错误:“)” E:\Dobbie\Test\project_elderberry_preview\Plugins\DimensioPlugins\CesiumForUnreal\Source\ThirdParty\include\CesiumGltf\AccessorUtility.h(302): error C4003: 类函数宏的调用“max”参数不足 E:\Dobbie\Test\project_elderberry_preview\Plugins\DimensioPlugins\CesiumForUnreal\Source\ThirdParty\include\CesiumGltf\AccessorUtility.h(303): error C4003: 类函数宏的调用“max”参数不足 Total time in Parallel executor: 2.46 seconds Total execution time: 4.04 seconds CompilationResultException: Error: OtherCompilationError at UnrealBuildTool.ActionGraph.ExecuteActionsAsync(BuildConfiguration BuildConfiguration, List 1 ActionsToExecute, List 1 TargetDescriptors, ILogger Logger, IActionArtifactCache actionArtifactCache) in F:\UE_5.3\Engine\Source\Programs\UnrealBuildTool\System\ActionGraph.cs:line 417 at UnrealBuildTool.BuildMode.BuildAsync(TargetMakefile[] Makefiles, List 1 TargetDescriptors, BuildConfiguration BuildConfiguration, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger) in F:\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 801 at UnrealBuildTool.BuildMode.BuildAsync(List 1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets) in F:\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 411 at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in F:\UE_5.3\Engine\Source\Programs\UnrealBuildTool\Modes\BuildMode.cs:line 252 at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in F:\UE_5.3\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cs:line 659 WriteFileIfChanged() wrote 2 changed files of 214 requested writes.

It seems the reason for me is that I #include <Cesium3DTileset.h> in my own plugin, but I don't know why it will trigger the errors for now.
In previous cesium plugin version, it can package correctly.

Figure it out! The reason is macro conflict of min/max.
Add
#ifndef NOMINMAX
#define NOMINMAX
#endif
before #include <Cesium3DTileset.h> works for me!
Hope it helpful to others!