Building headless on linux

I’m Trying to build Unreal Editor on Linux (Ubuntu 14.04) so I can have a build server, because it’s a server it doesn’t need an interface.

Now, when I get the code from github and run ./GenerateProjectFiles.sh all seems to be fine.
But as soon as I try to build the UnrealHeaderTool it fails miserably, It also tries to compile Module.Core.2_of_5.cpp before the 1_of_5.cpp, now I don’t know if that’s a problem or not, But it doesn’t give me much more error details.

This is what it gives me

vagrant@vagrant-ubuntu-trusty-64:~/UnrealEngine$ make UnrealHeaderTool
Engine/Build/BatchFiles/Linux/Build.sh UnrealHeaderTool Linux Development
Building UnrealHeaderTool...
Using clang version '3.3' (string), 3 (major), 3 (minor), -1 (patch)
Performing 17 actions (1 in parallel)
[1/17] Compile Module.Core.2_of_5.cpp
clang: error: unable to execute command: Killed
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 3.3-16ubuntu1 (branches/release_33) (based on LLVM 3.3)
Target: x86_64-pc-linux-gnu
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to http://bugs.debian.org/ and include the crash backtrace, preprocessed source, and associated run script.
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: note: diagnostic msg: Error generating preprocessed source(s).

And after that it just continues with Core.1_of_5.cpp and fails with the same message

This is my output in BuildThirthParty.log

building LinuxNativeDialogs
+ cd Source/ThirdParty/LinuxNativeDialogs/UELinuxNativeDialogs
+ rm -rf build
+ mkdir build
+ cd build
+ cmake ..
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26")
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- checking for module 'freetype2'
--   found freetype2, version 17.1.11
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "17.1.11")
-- Some or all of the gtk libraries were not found. (missing:  GTK2_GTK_LIBRARY GTK2_GTK_INCLUDE_DIR GTK2_GDK_INCLUDE_DIR GTK2_GDKCONFIG_INCLUDE_DIR GTK2_GDK_LIBRARY)
-- checking for module 'gtk+-3.0'
--   found gtk+-3.0, version 3.10.8
-- checking for module 'sdl2'
--   package 'sdl2' not found
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Qt4 found
-- GTK3 found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/vagrant/UnrealEngine/Engine/Source/ThirdParty/LinuxNativeDialogs/UELinuxNativeDialogs/build
+ make -j4
Scanning dependencies of target qt4dialog
[ 25%] Building CXX object CMakeFiles/qt4dialog.dir/src/qtdialog.cpp.o
Scanning dependencies of target gtk3dialog
[ 50%] Building C object CMakeFiles/gtk3dialog.dir/src/gtkdialog.c.o
Linking C shared library libgtk3dialog.so
[ 50%] Built target gtk3dialog
Scanning dependencies of target gtk3test
[ 75%] Building CXX object CMakeFiles/gtk3test.dir/src/dialogtest.cpp.o
Linking CXX shared library libqt4dialog.so
Linking CXX executable gtk3test
[ 75%] Built target qt4dialog
Scanning dependencies of target qt4test
[ 75%] Built target gtk3test
[100%] Building CXX object CMakeFiles/qt4test.dir/src/dialogtest.cpp.o
Linking CXX executable qt4test
[100%] Built target qt4test
+ local LIB_DIR=../lib/Linux/x86_64-unknown-linux-gnu/
+ '[' -f libqt4dialog.so ']'
+ ln -s libqt4dialog.so libLND.so
+ mv libgtk3dialog.so libLND.so libqt4dialog.so ../lib/Linux/x86_64-unknown-linux-gnu//
+ cp -P --remove-destination ../lib/Linux/x86_64-unknown-linux-gnu//libgtk3dialog.so ../lib/Linux/x86_64-unknown-linux-gnu//libLND.so ../lib/Linux/x86_64-unknown-linux-gnu//libqt4dialog.so /home/vagrant/UnrealEngine/Engine/Binaries/Linux/
+ '[' -f libqt5dialog.so ']'
+ '[' -f libgtk2dialog.so ']'
+ '[' -f libgtk3dialog.so ']'
+ set +x

That looks right to me, is there something I’m missing??

Thanks in advance

You did not specify if you are building from epic/master or epic/4.5 branch?

Master branch tends to be unstable at times as changes are constantly being made to it so if you are using master I suggest switching to 4.5.

Also, you do not need to build UHT yourself as it gets auto-built, although this won’t resolve your error on its own.

It appears as if Clang actually crashed, but usually a stack dump from the crash is displayed.

What kind of a hardware are you running this on, because it says “Performing 17 actions (1 in parallel)” which kinda suggests you only have a single CPU core engaged during compiling? (is this a VM, because you are really pushing your luck here doing that :slight_smile: )

You could try getting more verbose output by uncommenting this line in master: https://github.com/EpicGames/UnrealEngine/blob/master/Engine/Source/Programs/UnrealBuildTool/Linux/LinuxToolChain.cs#L383

or in 4.5: https://github.com/EpicGames/UnrealEngine/blob/4.5/Engine/Source/Programs/UnrealBuildTool/Linux/LinuxToolChain.cs#L313

I’m using the 4.5 branch, I will try again with that line uncommented, I will also retry on a full installation of linux instead of a VM

Running it on a beefier machine fixed the issues, note to self. Don’t run heavy programs in a VM.

Glad it worked out.

We had problems with VMs before, yet some users (Arch Linux) could only compile in VMs, before we realized Clang-3.4 was broken. Go figure.