CEF Binaries Not Found With Linux Build

Hi,

My game uses the experimental web browser UMG widget to show initial in-game news to players. On Linux, when cross-compiling or compiling natively, the CEF binaries are not properly loaded when the game is run, resulting an error about libcef.so not being found.

The CEF binaries are ending up in Engine\Binaries\ThirdParty\CEF3\Linux, which for whatever reason the game does not use at launch.

To remedy this, I have been using a build step to manually copy the CEF binaries from Engine\Binaries\ThirdParty\CEF3\Linux and put them in the <game>\Binaries folder, which works, but it is a hack.

I tagged this with 4.18 because it’s what I’m using now, but it also happened with 4.17. Is this a known issue?

Thanks,

Alan

Edit:

Here’s the output from ldd on my Ubuntu test machine:

build@build-ubuntu:/media/build/Western Digital HDD/build/workspace/EstSteamPipeline/Depot/Package/LinuxNoEditor/Insulam/Binaries/Linux$ ldd Insulam-Linux-Shipping 
	linux-vdso.so.1 =>  (0x00007fffe1b87000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2ccf722000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2ccf51e000)
	libsteam_api.so => /media/build/Western Digital HDD/build/workspace/EstSteamPipeline/Depot/Package/LinuxNoEditor/Insulam/Binaries/Linux/./../../../Engine/Binaries/ThirdParty/Steamworks/Steamv139/x86_64-unknown-linux-gnu/libsteam_api.so (0x00007f2ccf2e6000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f2ccf0de000)
	libopenvr_api.so => /media/build/Western Digital HDD/build/workspace/EstSteamPipeline/Depot/Package/LinuxNoEditor/Insulam/Binaries/Linux/./../../../Engine/Binaries/ThirdParty/OpenVR/OpenVRv1_0_10/linux64/libopenvr_api.so (0x00007f2cceea3000)
	libopenal.so.1 => /media/build/Western Digital HDD/build/workspace/EstSteamPipeline/Depot/Package/LinuxNoEditor/Insulam/Binaries/Linux/./../../../Engine/Binaries/ThirdParty/OpenAL/Linux/x86_64-unknown-linux-gnu/libopenal.so.1 (0x00007f2ccec4c000)
	libcef.so => not found
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2cce942000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2cce578000)
	/lib64/ld-linux-x86-64.so.2 (0x0000562d10f12000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2cce362000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f2ccdfdf000)

You can see that libcef.so is not found, despite it existing in the Engine/Binaries/ThirdParty/CEF3/Linux directory. It looks like CEF3.build.cs isn’t telling UE4 to load it from the correct place.