Download

[BUG?] Trouble with UnrealBuildTool on Linux, and the solution

I’m migrating my C++ projects from UE 4.26 to UE 5.0.0. I’ve successfully built the engine, and new project files.
When I compile the project’s C++ code in the Editor, it works perfectly; but when I run make MyProjectEditor, I get this error:

bash "/home/user/UnrealEngine/Engine/Build/BatchFiles/Linux/RunMono.sh" "/home/user/UnrealEngine/Engine/Binaries/DotNET/UnrealBuildTool.exe" MyProjectEditor Linux Development  -project="/home/user/Unreal Projects/MyProject/MyProject.uproject" 

Running Mono...

Fixing inconsistent case in filenames.
Setting up Mono
~/UnrealEngine/Engine ~/Unreal Projects/MyProject
Cannot open assembly '/home/user/UnrealEngine/Engine/Binaries/DotNET/UnrealBuildTool.exe': No such file or directory.
make: *** [Makefile:325: MyProjectEditor] Error 2

Looking into this, I see that UnrealBuildTool.exe was used with UE4 but not UE5, and I’ve noticed that with UE5, UnrealBuildTool is natively built for Linux, so Mono isn’t needed.


My Solution

So, my “solution” is to go to the project’s Makefile, and replace

PROJECTBUILD = bash "$(UNREALROOTPATH)/Engine/Build/BatchFiles/Linux/RunMono.sh" "$(UNREALROOTPATH)/Engine/Binaries/DotNET/UnrealBuildTool.exe"

with

PROJECTBUILD = $(BUILD)
That makes it use Engine/Build/BatchFiles/Linux/Build.sh, which is a wrapper around UnrealBuildTool.

I don’t know what the consequences are for this, I just know it seems to work.


My question is, has the UE team forgotten to update how Makefiles are generated for UE5?

Hope this helps anyone else who faces this problem.

2 Likes

Great! It works!

I am planning to shift to Linux as Windows is crashing a lot due to wattman error.

It is a driver problem.

Do you have any guide on how to setup everything in Linux including UE5? I am not a coder, the reason why I do not use Linux.

My aim is to create cinematic movies, so platform independant.

I was able to run UE5 on linux with following spec.

  • Intel i9 processor
  • RAM 32GB
  • NVIDIA RTX 2080 Super Max-Q (Driver version : 495.44)
  • Ubuntu 20.04
  • Vulkan Instance Version : 1.2.131

My workaround on linux is as follow:

  1. Clone or download the UE5 source(branch: 5.0) from github.
$ git clone -b 5.0 https://github.com/EpicGames/UnrealEngine.git UnrealEngine5
  1. Move to source folder and compile the engine.
$ cd UnrealEngine5
$ ./Setup.sh
$ ./GenerateProejctFiles.sh
$ make
  1. Launch the unreal editor.
$ ./Engine/Binaries/Linux/UnrealEditor

Thanks I will try and see.

thanks ,
after an eve of trying to compile with kdevelop ,running into “A conflicting instance of UnrealBuildTool is already running” , using make on the cli just worked and it compiled

as to running it, it starts but fails on starting a new project feel this is dew to the graphics card

dell t7600 (2x xeon E5-2680 @ 2.7ghz (32 cores total ) )
64gb ram
nvidia quadro FX 1800 , ( upgrading to a nvidia 1080ti )
suse tumbleweed