Hi, I’ve switched to Linux this year and have been trying to set up my Unreal project today. I’ve managed to get Unreal Engine installed and the editor starts as expected. Now I’m trying to compile my project from Rider because the editor can’t compile or open it and asks me to have it compiled in an IDE.
I’m using
Arch Linux
Unreal Engine 5.3 (compiled from source)
Rider 2026.1.2 (from AUR)
I’ve worked through Rider Setup Guid where I can:
- Installed Rider
- Didn’t install EzArgs plugin because I didn’t use it even when I was on Windows
- Didn’t apply the RAM settings because I don’t have 64 GB RAM (worked just fine on Windows)
- I have dotnet and MSBuild set up
Now to my actual problem: I’ve opened the uproject file with Rider and loaded the project. I click on Build Startup Project and let the project compile. I get a bunch of errors in Build Output. The most obvious issue is that Rider is unable to resolve Gameframework in includes.
The build output says this:
CONSOLE: /home/g-hi3/repos/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh TheRightToBearArmsEditor Linux Development -Project="/home/g-hi3/repos/creative-studio-game/TheRightToBearArms.uproject" -buildscw
0>Setting up bundled DotNet SDK
0>Building ShaderCompileWorker...
0>Log file: /home/g-hi3/repos/UnrealEngine/Engine/Programs/UnrealBuildTool/Log.txt
0>Using 'git status' to determine working set for adaptive non-unity build (/home/g-hi3/repos/UnrealEngine).
0>Invalidating makefile for ShaderCompileWorker (RiderLink.uplugin modified)
0>------- Build details --------
0>Using toolchain located at '/home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu'.
0>Using clang (/home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/clang++) version 'clang version 16.0.6 (github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
0>Target: x86_64-unknown-linux-gnu
0>Thread model: posix
0>InstalledDir: /home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin' (string), 16 (major), 0 (minor), 6 (patch)
0>Using bundled libc++ standard C++ library.
0>Using lld linker
0>Using llvm-ar (/home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar) version 'LLVM (http://llvm.org/):
0> LLVM version 16.0.6
0> Optimized build. (string)'
0>Using fast way to relink circularly dependent libraries (no FixDeps).
0>------------------------------
0>Target is up to date
0>Total execution time: 1.17 seconds
0>Running command : dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll TheRightToBearArmsEditor Linux Development -Project=/home/g-hi3/repos/creative-studio-game/TheRightToBearArms.uproject -buildscw
0>Log file: /home/g-hi3/repos/UnrealEngine/Engine/Programs/UnrealBuildTool/Log.txt
0>Using 'git status' to determine working set for adaptive non-unity build (/home/g-hi3/repos/UnrealEngine).
0>Using 'git status' to determine working set for adaptive non-unity build (/home/g-hi3/repos/creative-studio-game).
0>Invalidating makefile for TheRightToBearArmsEditor (RiderLink.uplugin modified)
0>------- Build details --------
0>Using toolchain located at '/home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu'.
0>Using clang (/home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/clang++) version 'clang version 16.0.6 (github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
0>Target: x86_64-unknown-linux-gnu
0>Thread model: posix
0>InstalledDir: /home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin' (string), 16 (major), 0 (minor), 6 (patch)
0>Using bundled libc++ standard C++ library.
0>Using lld linker
0>Using llvm-ar (/home/g-hi3/repos/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v22_clang-16.0.6-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar) version 'LLVM (http://llvm.org/):
0> LLVM version 16.0.6
0> Optimized build. (string)'
0>Using fast way to relink circularly dependent libraries (no FixDeps).
0>------------------------------
0>Building TheRightToBearArmsEditor...
0>[Upgrade]
0>[Upgrade] Using backward-compatible include order. The latest version of UE has changed the order of includes, which may require code changes. The current setting is:
0>[Upgrade] IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_0
0>[Upgrade] Suppress this message by setting 'IncludeOrderVersion = EngineIncludeOrderVersion.Latest;' in TheRightToBearArmsEditor.Target.cs.
0>[Upgrade] Alternatively you can set this to 'EngineIncludeOrderVersion.Latest' to always use the latest include order. This will potentially cause compile errors when integrating new versions of the engine.
0>[Upgrade]
0>Determining max actions to execute in parallel (16 physical cores, 16 logical cores)
0> Executing up to 16 processes, one per physical core
0> Requested 1.5 GB memory per action, 18.72 GB available: limiting max parallel actions to 12
0>------ Building 106 action(s) started ------
0>[1/106] Compile PkgInputStream.cpp
0>[2/106] Compile IRdWireable.cpp
0>[3/106] Compile file_sinks.cpp
0>[4/106] Compile LifetimeDefinition.cpp
0>[5/106] Compile RdTextBuffer.cpp
0>[6/106] Compile DefaultAbstractDeclaration.cpp
0>[7/106] Compile SequentialLifetimes.cpp
0>[8/106] Compile cfg.cpp
0>[9/106] Compile Lifetime.cpp
0>[10/106] Compile RName.cpp
0>[11/106] Compile thread_util.cpp
0>[12/106] Compile thirdparty.cpp
0>[13/106] Compile color_sinks.cpp
0>[14/106] Compile IUnknownInstance.cpp
0>[15/106] Compile async.cpp
0>[16/106] Compile SimpleSocket.cpp
0>[17/106] Compile SynchronousScheduler.cpp
0>[18/106] Compile RD.cpp
0>[19/106] Compile ControllerReadyUserWidget.gen.cpp
0>In file included from /home/g-hi3/repos/creative-studio-game/Intermediate/Build/Linux/UnrealEditor/Inc/UIExtensions/UHT/ControllerReadyUserWidget.gen.cpp:8:
0>ControllerReadyUserWidget.h(31,58): Error : unknown type name 'UInputDeviceSubsystem'
0> bool IsGamepad(const FInputDeviceId& InputDevice, const UInputDeviceSubsystem* SysPtr) const noexcept;
0> ^
0>1 error generated.
0>[20/106] Compile ControllerReadyUserWidget.cpp
0>In file included from /home/g-hi3/repos/creative-studio-game/Source/UIExtensions/Private/UMG/ControllerReadyUserWidget.cpp:3:
0>ControllerReadyUserWidget.h(31,58): Error : unknown type name 'UInputDeviceSubsystem'
0> bool IsGamepad(const FInputDeviceId& InputDevice, const UInputDeviceSubsystem* SysPtr) const noexcept;
0> ^
0>ControllerReadyUserWidget.cpp(54,33): Error : too many arguments to function call, expected single argument 'InputDevice', have 2 arguments
0> return IsGamepad(InputDevice, inputSubsystem);
0> ~~~~~~~~~ ^~~~~~~~~~~~~~
0>ControllerReadyUserWidget.cpp(51,34): Reference : 'IsGamepad' declared here
0>bool UControllerReadyUserWidget::IsGamepad(const FInputDeviceId& InputDevice) const noexcept
0> ^
0>ControllerReadyUserWidget.cpp(60,34): Error : out-of-line definition of 'IsGamepad' does not match any declaration in 'UControllerReadyUserWidget'
0>bool UControllerReadyUserWidget::IsGamepad(const FInputDeviceId& InputDevice, const UInputDeviceSubsystem* SysPtr) const noexcept
0> ^~~~~~~~~
0>3 errors generated.
0>[21/106] Compile PassiveSocket.cpp
0>[22/106] Compile SimpleScheduler.cpp
0>[23/106] Compile RdAny.cpp
0>[24/106] Compile ISerializable.cpp
0>[25/106] Compile IProtocol.cpp
0>[26/106] Compile Protocol.cpp
0>[27/106] Compile ISerializersOwner.cpp
0>[28/106] Compile ByteBufferAsyncProcessor.cpp
0>[29/106] Compile Polymorphic.cpp
0>[30/106] Compile SerializationCtx.cpp
0>[31/106] Compile ExtWire.cpp
0>[32/106] Compile hashing.cpp
0>[33/106] Compile WireBase.cpp
0>[34/106] Compile PumpScheduler.cpp
0>[35/106] Compile RdExtBase.cpp
0>[36/106] Compile SingleThreadScheduler.cpp
0>[37/106] Compile InternScheduler.cpp
0>[38/106] Compile stdout_sinks.cpp
0>[39/106] Compile countdownlatch.cpp
0>[40/106] Compile ActiveSocket.cpp
0>[41/106] Compile RdBindableBase.cpp
0>[42/106] Compile SignalCookie.cpp
0>[43/106] Compile IScheduler.cpp
0>[44/106] Compile RdId.cpp
0>[45/106] Compile LifetimeImpl.cpp
0>[46/106] Compile RdReactiveBase.cpp
0>[47/106] Compile DateTime.cpp
0>[48/106] Compile Buffer.cpp
0>[49/106] Compile Identities.cpp
0>[50/106] Compile SingleThreadSchedulerBase.cpp
0>[51/106] Compile Module.QuestSystem.cpp
0>In file included from /home/g-hi3/repos/creative-studio-game/Plugins/QuestSystemCore/Intermediate/Build/Linux/x64/UnrealEditor/Development/QuestSystem/Module.QuestSystem.cpp:4:
0>In file included from /home/g-hi3/repos/creative-studio-game/Plugins/QuestSystemCore/Intermediate/Build/Linux/UnrealEditor/Inc/QuestSystem/UHT/QuestGoal.gen.cpp:8:
0>QuestGoal.h(3,10): Error : 'Gameframework/Info.h' file not found
0>#include "Gameframework/Info.h"
0> ^~~~~~~~~~~~~~~~~~~~~~
0>1 error generated.
0>[52/106] Compile SocketWire.cpp
0>[53/106] Compile Serializers.cpp
0>[54/106] Compile WireUtil.cpp
0>[55/106] Compile InternRoot.cpp
0>[56/106] Compile Module.AttackSystem.cpp
0>In file included from /home/g-hi3/repos/creative-studio-game/Intermediate/Build/Linux/x64/UnrealEditor/Development/AttackSystem/Module.AttackSystem.cpp:25:
0>RangedWeapon.cpp(2,10): Error : 'Gameframework/Character.h' file not found
0>#include "Gameframework/Character.h"
0> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
0>1 error generated.
0>[57/106] Compile RampageModeComponent.cpp
0>RampageModeComponent.cpp(4,10): Error : 'Gameframework/Actor.h' file not found
0>#include "Gameframework/Actor.h"
0> ^~~~~~~~~~~~~~~~~~~~~~~
0>1 error generated.
0>[58/106] Compile Module.DialogueCore.cpp
0>In file included from /home/g-hi3/repos/creative-studio-game/Plugins/DialogueCore/Intermediate/Build/Linux/x64/UnrealEditor/Development/DialogueCore/Module.DialogueCore.cpp:31:
0>PlayDialogueAsync.cpp(3,10): Error : 'Gameframework/PlayerController.h' file not found
0>#include "Gameframework/PlayerController.h"
0> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0>1 error generated.
0>[59/106] Compile HitpointComponent.cpp
0>HitpointComponent.cpp(5,10): Error : 'Gameframework/Pawn.h' file not found
0>#include "Gameframework/Pawn.h"
0> ^~~~~~~~~~~~~~~~~~~~~~
0>1 error generated.
...
Some of the build errors make sense, like the missing Gameframework path in the include. Others seem to be fine:
0>ControllerReadyUserWidget.h(31,58): Error : unknown type name 'UInputDeviceSubsystem'
0> bool IsGamepad(const FInputDeviceId& InputDevice, const UInputDeviceSubsystem* SysPtr) const noexcept;
![]()
I know Linux support isn’t exactly great for Unreal Engine, but it seems like I’ve already got over the hard part, but I don’t know what the issue is here. I would like to figure out how to resolve Gameframework first and see if I’m able to compile again after that. What do I have to do to fix this?
