Fail to produce libUE4Editor-ShaderFormatOpenGL.so when building on Linux

I am using Ubuntu Gnome Edition 16.04 64 bit. I have an AMD Radeon HD 7770 GPU.

I am attempting to build the program on my computer from source, but after running either ‘make UE4Editor’ or ‘make UE4Editor UE4Game ShaderCompileWorker UnrealLightmass UnrealPak’ in the terminal, I get the following error output:

ERROR: UBT ERROR: Failed to produce item: /home/myusername/Programming/UnrealEngine4/UnrealEngine-release/Engine/Binaries/Linux/libUE4Editor-ShaderFormatOpenGL.so
Total build time: 15.62 seconds
Makefile:193: recipe for target 'UE4Editor' failed
make: *** [UE4Editor] Error 5

I have tried:

  • Installing clang with sudo apt-get install clang
  • Uninstalling that with sudo apt-get remove and installing clang 3.5 via sudo apt-get install clang-3.5 (this apparently gives me clang 3.5.2)
  • Uninstalling that installation and installing clang 3.5.0 from the tar.gz file found on the official clang downloads page
  • Uninstalling the UE4 components I had installed before and reinstalling them after reinstalling clang

Thank you for your time. Please let me know if you need any more information.

Bump due to lack of response.

Hey AnEggplant-

Have you received the same message in each instance of what you’ve tried already? Other community members with similar issues have reported that running ‘make’ for all targets again succeeded without errors ( Failed to produce item: libUE4Editor-Persona.so - Programming & Scripting - Epic Developer Community Forums ). Can you let me know if this helps? Pavak in the same post mentioned changing the include statement in Engine/Source/Runtime/Engine/Private/Particles/SubUVAnimation.cpp from #include "ConvexHull2D.h" to #include "ConvexHull2d.h" (with lowercase d). Let me know if either of these helps or gives you the same / different error message.

Cheers

Thank you for your response!

Unfortunately after changing that file (which was already at “#include “ConvexHull2d.h””), and rebuilding the file I still get the same exact error.

I was able to clone the 4.11.2 engine for Linux from the 4.11 branch earlier today. In doing so I ran each “make” command (ShaderCompileWorker, UnrealLightmass, UnrealPak, UE4Game, and UE4Editor) separately. Can you try doing the same and let me know exactly which make command fails as well include the terminal logs for the command that failed?

I received this error on running “make ShaderCompileWorker”:

ERROR: UBT ERROR: Failed to produce item: /home/nathan/Programming/UnrealEngine4/UnrealEngine-release/Engine/Binaries/Linux/libShaderCompileWorker-ShaderFormatOpenGL.so
Total build time: 134.48 seconds
Makefile:403: recipe for target 'ShaderCompileWorker' failed
make: *** [ShaderCompileWorker] Error 5

On “make UE4Editor” I get this:

ERROR: UBT ERROR: Failed to produce item: /home/nathan/Programming/UnrealEngine4/UnrealEngine-release/Engine/Binaries/Linux/libUE4Editor-ShaderFormatOpenGL.so
Total build time: 27.33 seconds
Makefile:193: recipe for target 'UE4Editor' failed
make: *** [UE4Editor] Error 5

Can you try to make symbolic links for Clang 3.5 using $ ln -s /usr/bin/clang-3.5 /usr/bin/clang $ ln -s /usr/bin/clang++-3.5 /usr/bin/clang++ If possible, can you let me know if you get the same errors building another engine version?

It seems as though I’m missing the directory /usr/bin/clang++? I installed clang-3.5 and have all the other folders. I’m not sure what would be causing this.

Hey AnEggplant-

Could you provide the compiler error message that you receive? It should appear earlier in the terminal log.

After running ln -s /usr/bin/clang-3.5 /usr/bin/clang $ ln -s /usr/bin/clang++-3.5 /usr/bin/clang++ I get the following error message:

ln: target '/usr/bin/clang++-3.5' is not a directory

I apologize for not being clearer. I had meant for you to include the compiler error from attempting to use the $make ShaderCompileWorker and $make UE4Editor commands.

I no longer need to install Unreal Engine. I want to thank you for your help though and I apologize for not understanding what you meant.