Compiling fails with Houdini Engine for Unreal on a new Fedora 35 install, with the (now publicly released) UE5 sources.
Copied this branch into the UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/ folder.
Ran the script houdini_setup_bash in the /opt/hfs19.0/ folder.
Ran UE's GenerateProjectFiles.sh.
Compiled with make targets:
make UnrealEditor UnrealEditor-Linux-Debug UnrealFrontend UnrealFrontend-Linux-Debug
And the compile failed.
make UnrealEditor UnrealEditor-Linux-Debug UnrealFrontend UnrealFrontend-Linux-Debug
bash "/home/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh" UnrealEditor Linux Development
Setting up bundled DotNet SDK
Microsoft (R) Build Engine version 17.1.0+ae57d105c for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:02.15
Running command : dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll UnrealEditor Linux Development
Log file: /home/UnrealEngine/Engine/Programs/UnrealBuildTool/Log.txt
Using 'git status' to determine working set for adaptive non-unity build (/home/UnrealEngine).
Invalidating makefile for UnrealEditor (HoudiniEngine.Build.cs modified)
Houdini Engine : Found Houdini in /opt/hfs19.0
Creating makefile for UnrealHeaderTool (no existing makefile)
------- Build details --------
Using toolchain located at '/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '11.0.1' (string), 11 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink circularly dependent libraries (no FixDeps).
------------------------------
Parsing headers for UnrealEditor
Running UnrealHeaderTool UnrealEditor "/home/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/UnrealEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="/home/UnrealEngine/Engine/Programs/UnrealBuildTool/Log_UHT.txt"
Reflection code generated for UnrealEditor in 3.9671803 seconds
------- Build details --------
Using toolchain located at '/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '11.0.1' (string), 11 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v19_clang-11.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink circularly dependent libraries (no FixDeps).
------------------------------
Building UnrealEditor...
Determining max actions to execute in parallel (8 physical cores, 8 logical cores)
Executing up to 8 processes, one per physical core
Building 28 actions with 8 processes...
[1/28] Compile PCH.HoudiniEngine.h
[2/28] Compile PCH.HoudiniEngineRuntime.h
[3/28] Compile PCH.HoudiniEngineEditor.h
[4/28] Compile Module.HoudiniEngine.6_of_6.cpp
[5/28] Compile Module.HoudiniEngine.gen.cpp
[6/28] Compile Module.HoudiniEngineRuntime.gen.5_of_5.cpp
[7/28] Compile Module.HoudiniEngine.1_of_6.cpp
[8/28] Compile Module.HoudiniEngine.5_of_6.cpp
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3707:19: error: member access into incomplete type 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::ElementType' (aka 'FDynamicMeshVertex')
VertexBuffer[i].Position = (FVector3f)(TransformOffset + (RotationOffset * (ScaleOffset * (FVector3d)VertexBuffer[i].Position)));
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3714:40: error: member access into incomplete type 'FDynamicMeshVertex'
Vertices[CurIndex * 3 + 0] = CurVert.Position.X / HAPI_UNREAL_SCALE_FACTOR_POSITION;
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3715:40: error: member access into incomplete type 'FDynamicMeshVertex'
Vertices[CurIndex * 3 + 1] = CurVert.Position.Z / HAPI_UNREAL_SCALE_FACTOR_POSITION;
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:14:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3716:40: error: member access into incomplete type 'FDynamicMeshVertex'
Vertices[CurIndex * 3 + 2] = CurVert.Position.Y / HAPI_UNREAL_SCALE_FACTOR_POSITION;
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:33:
In file included from /home/UnrealEngine/Engine/Source/Runtime/Core/Public/HAL/MemoryBase.h:9:
In file included from Runtime/Core/Public/Templates/Atomic.h:8:
In file included from /home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/IsTrivial.h:6:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/IsTriviallyDestructible.h:18:18: error: incomplete type 'FDynamicMeshVertex' used in type trait expression
enum { Value = __has_trivial_destructor(T) };
^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/IsTriviallyDestructible.h:28:61: note: in instantiation of template class 'UE::Core::Private::IsTriviallyDestructible::TImpl<FDynamicMeshVertex, false>' requested here
enum { Value = UE::Core::Private::IsTriviallyDestructible::TImpl<T>::Value };
^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Templates/MemoryOps.h:90:17: note: in instantiation of template class 'TIsTriviallyDestructible<FDynamicMeshVertex>' requested here
if constexpr (!TIsTriviallyDestructible<ElementType>::Value)
^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:612:3: note: in instantiation of function template specialization 'DestructItems<FDynamicMeshVertex, int>' requested here
DestructItems(GetData(), ArrayNum);
^
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3701:30: note: in instantiation of member function 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::~TArray' requested here
TArray<FDynamicMeshVertex> VertexBuffer;
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:59:
In file included from Runtime/Core/Public/Misc/Compression.h:6:
In file included from Runtime/Core/Public/UObject/NameTypes.h:10:
In file included from Runtime/Core/Public/Containers/UnrealString.h:18:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:747:10: error: subscript of pointer to incomplete type 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::ElementType' (aka 'FDynamicMeshVertex')
return GetData()[Index];
^~~~~~~~~
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3707:16: note: in instantiation of member function 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::operator[]' requested here
VertexBuffer[i].Position = (FVector3f)(TransformOffset + (RotationOffset * (ScaleOffset * (FVector3d)VertexBuffer[i].Position)));
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:59:
In file included from Runtime/Core/Public/Misc/Compression.h:6:
In file included from Runtime/Core/Public/UObject/NameTypes.h:10:
In file included from Runtime/Core/Public/Containers/UnrealString.h:18:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:2645:112: error: arithmetic on a pointer to an incomplete type 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::ElementType' (aka 'FDynamicMeshVertex')
FORCEINLINE RangedForIteratorType end () { return RangedForIteratorType (ArrayNum, GetData() + Num()); }
~~~~~~~~~ ^
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3712:22: note: in instantiation of member function 'TArray<FDynamicMeshVertex, TSizedDefaultAllocator<32>>::end' requested here
for (auto& CurVert : VertexBuffer)
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/Module.HoudiniEngine.5_of_6.cpp:1:
In file included from /home/UnrealEngine/Engine/Source/../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngine/PCH.HoudiniEngine.h:350:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/HoudiniEnginePrivatePCH.h:31:
In file included from ../Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineRuntime/Private/HoudiniEngineRuntimePrivatePCH.h:29:
In file included from Runtime/Core/Public/CoreMinimal.h:59:
In file included from Runtime/Core/Public/Misc/Compression.h:6:
In file included from Runtime/Core/Public/UObject/NameTypes.h:10:
In file included from Runtime/Core/Public/Containers/UnrealString.h:18:
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Containers/Array.h:202:4: error: arithmetic on a pointer to an incomplete type 'FDynamicMeshVertex'
++Ptr;
^ ~~~
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngine/Private/UnrealMeshTranslator.cpp:3712:22: note: in instantiation of member function 'TCheckedPointerIterator<FDynamicMeshVertex, int>::operator++' requested here
for (auto& CurVert : VertexBuffer)
^
/home/UnrealEngine/Engine/Source/Runtime/Engine/Public/SceneManagement.h:51:8: note: forward declaration of 'FDynamicMeshVertex'
struct FDynamicMeshVertex;
^
8 errors generated.
[9/28] Compile Module.HoudiniEngineRuntime.gen.1_of_5.cpp
[10/28] Compile Module.HoudiniEngineRuntime.gen.3_of_5.cpp
[11/28] Compile Module.HoudiniEngineRuntime.gen.2_of_5.cpp
[12/28] Compile Module.HoudiniEngine.3_of_6.cpp
[13/28] Compile Module.HoudiniEngineRuntime.gen.4_of_5.cpp
[14/28] Compile Module.HoudiniEngine.4_of_6.cpp
[15/28] Compile Module.HoudiniEngineEditor.gen.2_of_3.cpp
[16/28] Compile Module.HoudiniEngine.2_of_6.cpp
[17/28] Compile Module.HoudiniEngineEditor.gen.3_of_3.cpp
[18/28] Compile Module.HoudiniEngineEditor.gen.1_of_3.cpp
[19/28] Compile Module.HoudiniEngineEditor.4_of_4.cpp
[20/28] Compile Module.HoudiniEngineRuntime.cpp
[21/28] Link (lld) libUnrealEditor-HoudiniEngineRuntime.so
[22/28] Link (lld) libUnrealEditor-HoudiniEngine.so cancelled
[23/28] Compile Module.HoudiniEngineEditor.1_of_4.cpp
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngineEditor/Module.HoudiniEngineEditor.1_of_4.cpp:7:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineEditor/Private/HoudiniEngineBakeUtils.cpp:7166:21: warning: 'FName' is deprecated: EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
CandidateName = FName(*InName, NAME_EXTERNAL_TO_INTERNAL(1), FNAME_Add, bSplitName);
^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/UObject/NameTypes.h:958:2: note: 'FName' has been explicitly marked deprecated here
UE_DEPRECATED(5.1, "EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER.")
^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:232:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
^
In file included from ../Plugins/Runtime/HoudiniEngine/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/HoudiniEngineEditor/Module.HoudiniEngineEditor.1_of_4.cpp:7:
/home/UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/Source/HoudiniEngineEditor/Private/HoudiniEngineBakeUtils.cpp:7166:21: warning: 'FName' is deprecated: EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
CandidateName = FName(*InName, NAME_EXTERNAL_TO_INTERNAL(1), FNAME_Add, bSplitName);
^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/UObject/NameTypes.h:958:2: note: 'FName' has been explicitly marked deprecated here
UE_DEPRECATED(5.1, "EFindName has been removed from constructors taking a Number argument to add clarity around UE_FNAME_OUTLINE_NUMBER.")
^
/home/UnrealEngine/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:232:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
^
2 warnings generated.
[24/28] Compile Module.HoudiniEngineEditor.3_of_4.cpp
[25/28] Compile Module.HoudiniEngineEditor.2_of_4.cpp
[26/28] Link (lld) libUnrealEditor-HoudiniEngineEditor.so cancelled
[27/28] WriteMetadata UnrealEditor.version cancelled
[28/28] WriteMetadata UnrealEditor.target cancelled
make: *** [Makefile:1288: UnrealEditor] Error 6
I'm not sure if this got fixed but I recloned the repo, reran the steps with the UE5 release and the Houdini daily build, and it appears to compile fine now. Thanks!
Closing this issue.
Compiling fails with Houdini Engine for Unreal on a new Fedora 35 install, with the (now publicly released) UE5 sources.
Copied this branch into the
UnrealEngine/Engine/Plugins/Runtime/HoudiniEngine/
folder. Ran the scripthoudini_setup_bash
in the/opt/hfs19.0/
folder.Ran UE's
GenerateProjectFiles.sh
.Compiled with make targets:
And the compile failed.