Why can I create Unreal projects in Blueprint but not C++?

I’m on Ubuntu 24.04.5 LTS and downloaded Linux_Unreal_Engine_5.8.4.zip. I can create blueprint projects but if I try to create a project in C++ I get this log:

Log started at 10/29/2026 19:16:29 (2026-10-29T19:16:29Z)
Resolved project argument /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/TrainingSimulator.uproject to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/TrainingSimulator.uproject
No config file at /usr/share/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
No config file at /home/tcrinion@subseacraft.com/.local/share/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
No config file at /home/tcrinion@subseacraft.com/Documents/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
Configuration will be read from:
/home/tcrinion@subseacraft.com/.config/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
Reading configuration file from: /home/tcrinion@subseacraft.com/.config/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
Reading configuration file from: /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Saved/UnrealBuildTool/BuildConfiguration.xml
Reading configuration file from: /home/tcrinion@subseacraft.com/.config/Epic/UnrealEngine/Intermediate/Build/UnrealBuildTool.Env.BuildConfiguration.xml
Setting temp directory to '/tmp/UnrealBuildTool/449012f6'
Registering build platform: UnrealBuildTool.AndroidPlatformFactory
Unable to find valid SDK(s) for Android:
Found Sdk Version, MinRequired=r27c, MaxRequired=r29.
Found AutoSdk Version, Required=r27c.
Registering build platform: Android - buildable: False
Registering build platform: UnrealBuildTool.IOSPlatformFactory
Registering build platform: UnrealBuildTool.LinuxPlatformFactory
Linux Installed SDK(s): Version_Sdk=v26_clang-20.1.8-rockylinux8, CurrentVersion_Sdk=v26_clang-20.1.8-rockylinux8, Version_AutoSdk=v26_clang-20.1.8-rockylinux8, CurrentVersion_AutoSdk=
Registering build platform: Linux - buildable: True
LinuxArm64 Installed SDK(s): Version_Sdk=v26_clang-20.1.8-rockylinux8, CurrentVersion_Sdk=v26_clang-20.1.8-rockylinux8, Version_AutoSdk=v26_clang-20.1.8-rockylinux8, CurrentVersion_AutoSdk=
Registering build platform: LinuxArm64 - buildable: True
Registering build platform: UnrealBuildTool.MacPlatformFactory
Registering build platform: UnrealBuildTool.TVOSPlatformFactory
Registering build platform: UnrealBuildTool.WindowsPlatformFactory
Registering build platform: UnrealBuildTool.VisionOSPlatformFactory
Command line: "/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll" Development Linux -Project=/symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/TrainingSimulator.uproject -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
Log file: /home/tcrinion@subseacraft.com/.config/Epic/UnrealBuildTool/Log.txt

Skipping /home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Intermediate/Build/BuildRules/UE5Rules.dll: File is installed
Skipping /home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Intermediate/Build/BuildRules/UE5ProgramRules.dll: File is installed
Determining max actions to execute in parallel (24 physical cores, 24 logical cores)
Executing up to 24 processes, one per physical core
Creating makefile for TrainingSimulatorEditor (no existing makefile)
UbaStorageServer - FileMapping backing: memfd
UbaStorageServer - Database loaded from /home/tcrinion@subseacraft.com/.epic/UnrealBuildAccelerator/cas/casdb (v35) in <1ms (contained 0 entries estimated to 0b)
UbaServer - Listening on 0.0.0.0:1345
Using EngineIncludeOrderVersion.Unreal5_8 for target TrainingSimulatorEditor.Target.cs
Building UnrealEditor - TrainingSimulatorEditor - Linux - Development
VerseVMBytecodeGenerator.Generate, generating CPP headers in: '/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Intermediate/Build/Linux/UnrealEditor/Inc/CoreUObject/VerseVMBytecode'
Writing out generated header file. Changed:False Path:'/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Intermediate/Build/Linux/UnrealEditor/Inc/CoreUObject/VerseVMBytecode/VVMBytecodeOps.gen.h'
Writing out generated header file. Changed:False Path:'/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Intermediate/Build/Linux/UnrealEditor/Inc/CoreUObject/VerseVMBytecode/VVMBytecodesAndCaptures.gen.h'
Writing out generated header file. Changed:False Path:'/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Intermediate/Build/Linux/UnrealEditor/Inc/CoreUObject/VerseVMBytecode/VVMMakeCapturesFuncs.gen.h'
Writing out generated header file. Changed:False Path:'/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Intermediate/Build/Linux/UnrealEditor/Inc/CoreUObject/VerseVMBytecode/VVMCaptureSwitch.gen.h'
@progress push 5%
@progress 'Generating code...' 0%
@progress 'Generating code...' 33%
Found 5 shared PCH headers (listed in order of preference):
UnrealEd
Engine
Slate
CoreUObject
Core
Parsing headers for TrainingSimulatorEditor
Running Internal UnrealHeaderTool /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/TrainingSimulator.uproject /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/TrainingSimulatorEditor/TrainingSimulatorEditor.uhtmanifest -WarningsAsErrors -installed
Updating /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Core/SharedPCH.Core.Cpp20.h.gch.rsp: contents have changed. Saving previous version to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Core/SharedPCH.Core.Cpp20.h.gch.rsp.old.
Updating /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/CoreUObject/SharedPCH.CoreUObject.Cpp20.h.gch.rsp: contents have changed. Saving previous version to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/CoreUObject/SharedPCH.CoreUObject.Cpp20.h.gch.rsp.old.
Updating /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/CoreUObject/SharedPCH.CoreUObject.RTTI.Cpp20.h.gch.rsp: contents have changed. Saving previous version to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/CoreUObject/SharedPCH.CoreUObject.RTTI.Cpp20.h.gch.rsp.old.
Updating /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Slate/SharedPCH.Slate.Cpp20.h.gch.rsp: contents have changed. Saving previous version to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Slate/SharedPCH.Slate.Cpp20.h.gch.rsp.old.
Updating /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Engine/SharedPCH.Engine.Cpp20.h.gch.rsp: contents have changed. Saving previous version to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Engine/SharedPCH.Engine.Cpp20.h.gch.rsp.old.
Updating /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Engine/SharedPCH.Engine.Project.ValApi.ValExpApi.Cpp20.h.gch.rsp: contents have changed. Saving previous version to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/Engine/SharedPCH.Engine.Project.ValApi.ValExpApi.Cpp20.h.gch.rsp.old.
Updating /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/UnrealEd/SharedPCH.UnrealEd.Cpp20.h.gch.rsp: contents have changed. Saving previous version to /symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/UnrealEd/SharedPCH.UnrealEd.Cpp20.h.gch.rsp.old.
UHT compiled-in object format Default
Step - Parse Headers
Reading engine version from file: /home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Source/Runtime/Launch/Resources/Version.h
Got engine version 5.8.4
Step - Populate symbol table
Step - Exports
Exporter Stats skipped
Exporter Json skipped
Running exporter CodeGen
UHT processed TrainingSimulatorEditor in 1.9492992 seconds (38 generated files written)
@progress 'Generating code...' 67%
@progress 'Generating code...' 100%
@progress pop
Building TrainingSimulatorEditor...
===== Toolchain Information =====
Using ISPC compiler (/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Source/ThirdParty/Intel/ISPC/bin/Linux/ispc)
Intel(r) Implicit SPMD Program Compiler (Intel(r) ISPC), 1.24.0 (build commit  @ 20240919, LLVM 18.1.6)
Using Clang compiler 20.1.8 (/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v26_clang-20.1.8-rockylinux8/x86_64-unknown-linux-gnu/bin/clang++)
clang version 20.1.8 (github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v26_clang-20.1.8-rockylinux8/x86_64-unknown-linux-gnu/bin
Using Clang archiver (/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v26_clang-20.1.8-rockylinux8/x86_64-unknown-linux-gnu/bin/llvm-ar)
LLVM (http://llvm.org/):   LLVM version 20.1.8   Optimized build.
Using toolchain located at '/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v26_clang-20.1.8-rockylinux8/x86_64-unknown-linux-gnu'
Using bundled libc++ standard C++ library.
Compressing debug files
[Adaptive Build] Excluded from TrainingSimulator unity file: TrainingSimulatorWheelRear.cpp, TrainingSimulatorPlayerController.cpp, TrainingSimulatorUI.cpp, TrainingSimulatorGameMode.cpp, TrainingSimulator.cpp, TrainingSimulatorSportsCar.cpp, TrainingSimulatorWheelFront.cpp, TrainingSimulatorPawn.cpp, TimeTrialGameMode.cpp, TimeTrialPlayerController.cpp, TimeTrialTrackGate.cpp, TimeTrialStartUI.cpp, TimeTrialUI.cpp, TrainingSimulatorOffroadWheelFront.cpp, TrainingSimulatorOffroadCar.cpp, TrainingSimulatorOffroadWheelRear.cpp, TrainingSimulatorSportsWheelFront.cpp, TrainingSimulatorSportsWheelRear.cpp, OffroadGameMode.cpp
===== End Toolchain Information =====
Using Unreal Build Accelerator local executor to run 23 action(s)
CPU 24 physical cores, 24 logical cores
Memory 62.25 GB physical, 26.3 GB/103.13 GB committed
UBA Storage capacity 40 GB
UBA RootDir /home/tcrinion@subseacraft.com/.epic/UnrealBuildAccelerator
@progress 'Compiling C++ source code...' 0%
Cache bucket 3457599111 used. Action: Compile SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h ()
Cache bucket 3110310194 used. Action: Compile Module.TrainingSimulator.cpp ()
Cache bucket 3444289189 used. Action: Link libUnrealEditor-TrainingSimulator.so ()
All processes queued
ASSERT: BUFFEROVERFLOW!
LOCATION: Programs/UnrealBuildAccelerator/Detours/Private/PosixOS/UbaDetoursSharedPosix.inl:1158
CALLSTACK:
/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Binaries/DotNET/UnrealBuildTool/runtimes/linux-x64/native/libUbaDetours.so: 0x138cbf
/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Binaries/DotNET/UnrealBuildTool/runtimes/linux-x64/native/libUbaDetours.so: 0x1387bc
/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v26_clang-20.1.8-rockylinux8/x86_64-unknown-linux-gnu/bin/clang++: 0x21a6825
UbaSessionServer - Process SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h (Compile) still has active file /home/tcrinion@subseacraft.com/develop/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/UnrealEd/SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h-8c6aef58.gch.tmp that was never closed (refcount 1)
@progress 'Compiling C++ source code...' 4%
[1/23] Compile SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h
ASSERT: BUFFEROVERFLOW!
LOCATION: Programs/UnrealBuildAccelerator/Detours/Private/PosixOS/UbaDetoursSharedPosix.inl:1158
CALLSTACK:
/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Binaries/DotNET/UnrealBuildTool/runtimes/linux-x64/native/libUbaDetours.so: 0x138cbf
/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Binaries/DotNET/UnrealBuildTool/runtimes/linux-x64/native/libUbaDetours.so: 0x1387bc
/home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v26_clang-20.1.8-rockylinux8/x86_64-unknown-linux-gnu/bin/clang++: 0x21a6825
Compile SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h: Exited with error code 245 . The build will fail.
Compile SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h: WorkingDirectory /home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Source
Compile SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h: /home/tcrinion@subseacraft.com/Documents/Unreal Engine/Linux_Unreal_Engine_5.8.4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v26_clang-20.1.8-rockylinux8/x86_64-unknown-linux-gnu/bin/clang++ @"/symlinks/dev_symlink/training-simulator/TrainingSimulator/TrainingSimulator/Intermediate/Build/Linux/x64/TrainingSimulatorEditor/Development/UnrealEd/SharedPCH.UnrealEd.Project.ValApi.ValExpApi.Cpp20.h.gch.rsp"

Total time in Unreal Build Accelerator local executor: 18.34 seconds
UbaStorageServer - Database saved in <1ms (0 file entries, 0 cas entries. deleted 0 dropped cas files)
CompilationResultException: OtherCompilationError
at UnrealBuildTool.ActionGraph.InternalExecuteActions(ActionExecutor Executor, List1 ActionsToExecute, ILogger Logger) in /mnt/horde/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Actions/ActionGraph.cs:line 442    at UnrealBuildTool.ActionGraph.ExecuteActionsAsync(BuildConfiguration BuildConfiguration, List1 ActionsToExecute, List1 TargetDescriptors, ILogger Logger, ActionExecutor executor) in /mnt/horde/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Actions/ActionGraph.cs:line 417    at UnrealBuildTool.BuildMode.BuildAsync(List1 Targets, BuildConfiguration BuildConfiguration, BuildOptions Options, FileReference WriteOutdatedActionsFile, CppDependencyCache cppDependencyCache, ILogger Logger, String ActionTypeFilter, ActionExecutor executor) in /mnt/horde/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 812
at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in /mnt/horde/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 282
at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in /mnt/horde/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 303
at UnrealBuildTool.UnrealBuildTool.Main(String
 ArgumentsArray) in /mnt/horde/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.cs:line 483
WriteFileIfChanged() wrote 0 changed files of 1 requested writes.

Timeline:
[  0.000]  +0.476 Main
0.009          [  0.009]  +0.076 Apply XmlConfig
0.086          [  0.086]  +0.098 AddTelemetry
0.236          [  0.236]  +0.240 RegisterPlatforms
[  0.491]  +0.206 ParseCommandLine
0.505          [  0.014]  +0.015 EngineRulesPlugins
0.523          [  0.032]  +0.042 EngineRulesFetchDirs
0.572          [  0.081]  +0.006 EngineRulesAssembly
0.579          [  0.087]  +0.000 ProgramRulesAssembly
0.579          [  0.088]  +0.001 ProjectRulesAssembly
[  0.731]  +0.015 CreateTargetRules
[  0.786]  +0.001 CppDependencyCache
[  0.793]  +1.616 TrainingSimulatorEditor Linux Development
0.793          [  0.000]  +0.353 
1.146          [  0.353]  +0.513 UHTModules
1.766          [  0.972]  +0.136 UHTManifest
1.902          [  1.109]  +1.952 UHT
1.902             1.109          [  0.000]  +0.454 
2.356             1.563          [  0.454]  +0.000 WaitOnWrites
2.410             1.616          [  0.507]  +0.389 SavingMakefile
2.799             2.006          [  0.897]  +1.055 
[  2.410]  +1.445 
[  3.855]  +0.019 UHTTimestamps
[  3.876]  +0.000 CppDependencyCache
[  3.876]  +0.029 Preparing ActionGraph
3.882          [  0.005]  +0.003 LinkActions
3.885             0.009          [  0.003]  +0.000 DetectActionGraphCycles
3.886          [  0.009]  +0.000 GatherPrerequisiteActions
3.887          [  0.011]  +0.000 CppDependencyCacheWait
3.888          [  0.011]  +0.010 GatherOutdatedActions
3.900          [  0.024]  +0.001 LinkActions
3.900             0.024          [  0.000]  +0.000 DetectActionGraphCycles
3.903          [  0.026]  +0.000 DeleteOutdatedProducedItems
3.903          [  0.026]  +0.002 SaveActionHistory
3.905          [  0.029]  +0.000 CreateDirectoriesForProducedItems
[  3.926]  +0.580 GarbageCollect
[  4.506] +17.751 
[ 22.258]  +0.000 DisconnectCache
[ 22.260]  +0.000 SaveCasTable
[ 22.261]  +0.050 Saving caches
[ 22.319]  +0.001 TelemetryService.FlushEvents
[ 22.322]

Result: Failed (OtherCompilationError)
Total execution time: 22.32 seconds