Error compiling 2.0.0 on UE 5.3 Oculus Branch

We’re forced to upgrade from 5.2 to 5.3, but are not able to ship this update to production due to an issue with Cesium when upgrading to 2.0.0 from v1.29 which we’re currently on. We tried 1.31.2, and throws the same error as for 2.0.0 below. @Kevin_Ring have you seen this elsewhere?

We are seeing this when building the solution:

1>D:\project\project\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumFlyToComponent.cpp(50): error C4458: declaration of ‘GlobeAnchor’ hides class member

which seems to be declared in Source/CesiumRuntime/Public/CesiumGlobeAnchoredActorComponent.h

We tried changing the name in CesiumFlyToComponent.cpp we instead get linker errors, see below.

We’re on the head of oculus-5.3 branch.

How do we get past this?

Some of the linker errors:

Creating library D:\project\project\Plugins\CesiumForUnreal\Intermediate\Build\Win64\x64\UnrealEditor\DebugGame\CesiumEditor\UnrealEditor-CesiumEditor-Win64-DebugGame.sup.lib and object D:\project\project\Plugins\CesiumForUnreal\Intermediate\Build\Win64\x64\UnrealEditor\DebugGame\CesiumEditor\UnrealEditor-CesiumEditor-Win64-DebugGame.sup.exp
1>CesiumIonClient.lib(Connection.obj) : error LNK2019: unresolved external symbol __std_find_trivial_1 referenced in function "char const * __cdecl __std_find_trivial<char const ,unsigned char>(char const *,char const *,unsigned char)" (??$__std_find_trivial@$$CBDE@@YAPEBDPEBD0E@Z)
1>CesiumIonClient.lib(parseLinkHeader.obj) : error LNK2001: unresolved external symbol __std_find_trivial_1
1>CesiumIonClient.lib(Connection.obj) : error LNK2019: unresolved external symbol __std_find_trivial_8 referenced in function "class CesiumAsync::CesiumImpl::QueuedScheduler * * __cdecl __std_find_trivial<class CesiumAsync::CesiumImpl::QueuedScheduler *,class CesiumAsync::CesiumImpl::QueuedScheduler *>(class CesiumAsync::CesiumImpl::QueuedScheduler * *,class CesiumAsync::CesiumImpl::QueuedScheduler * *,class CesiumAsync::CesiumImpl::QueuedScheduler * const)" (??$__std_find_trivial@PEAVQueuedScheduler@CesiumImpl@CesiumAsync@@PEAV123@@@YAPEAPEAVQueuedScheduler@CesiumImpl@CesiumAsync@@PEAPEAV012@0QEAV012@@Z)
1>CesiumIonClient.lib(parseLinkHeader.obj) : error LNK2019: unresolved external symbol __std_find_trivial_4 referenced in function "int const * __cdecl __std_find_trivial<int const ,int>(int const *,int const *,int)" (??$__std_find_trivial@$$CBHH@@YAPEBHPEBH0H@Z)
1>D:\project\project\Plugins\CesiumForUnreal\Binaries\Win64\UnrealEditor-CesiumEditor-Win64-DebugGame.dll : fatal error LNK1120: 3 unresolved externals
1>[6/7] Link [x64] UnrealEditor-CesiumRuntime-Win64-DebugGame.dll
1>   Creating library D:\project\project\Plugins\CesiumForUnreal\Intermediate\Build\Win64\x64\UnrealEditor\DebugGame\CesiumRuntime\UnrealEditor-CesiumRuntime-Win64-DebugGame.sup.lib and object D:\project\project\Plugins\CesiumForUnreal\Intermediate\Build\Win64\x64\UnrealEditor\DebugGame\CesiumRuntime\UnrealEditor-CesiumRuntime-Win64-DebugGame.sup.exp
1>UnrealAssetAccessor.cpp.obj : error LNK2019: unresolved external symbol __imp_uriUriStringToWindowsFilenameA referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl `anonymous namespace'::convertFileUriToFilename(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?convertFileUriToFilename@?A0x414c6297@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV23@@Z)
1>CesiumGltfReader.lib(GltfReader.obj) : error LNK2001: unresolved external symbol __std_find_trivial_8
1>Cesium3DTilesSelection.lib(ImplicitQuadtreeLoader.obj) : error LNK2001: unresolved external symbol __std_find_trivial_8

Hi @carlrealvr,

I’m going to assume based on the project file paths that you’re building the plugin from source. If so, can you be sure that:

  1. You have clicked “Generate Visual Studio project files” on your uproject after you upgraded from 5.2 to 5.3
  2. You are using the same version of Visual Studio to build the project. Using different versions can lead to these linker errors.
  3. You have updated the submodules and rebuilt the extern folder to account for any changes.

If the problem still persists, can you narrow down which version between v1.29 and v1.31.2 causes the compilation errors?

We figured it out. We’ve been on VS 2019 for a long time, and updating to VS 2022 fixed this.