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.