Linker errors when cross compiling for Linux

With UE 4.14 I’m getting the following linker errors when cross compiling for Linux:

Looks like a math library is missing when linking PhysX.

Cross compiling worked flawlessly with UE 4.13.

Hey -

Are you getting this error when compiling the engine for Linux or your project? Are you using the 4.14 branch or the Master branch from GitHub? I was able to compile the engine from the 4.14 branch as well as a project created with this engine for Linux successfully. Please explain your setup and exactly where this error is occurring for you.

I’m trying to build the Linux dedicated server for our project with the 4.14 branch from GitHub.

I just tried it again with the sources updated to the latest commit (which is e99c9f6 at the time of writing) and it still doesn’t work.

The errors happen during linking immediately after successfully compiling the source.

This time round I did notice a warning when the build command started:

UnrealBuildTool: Using LINUX_ROOT (deprecated, consider LINUX_MULTIARCH_ROOT), building with toolchain 'H:\toolchain\'

I’m using the v7 clang 3.7.0-based toolchain from here:

Maybe there’s something wrong with the build command I’m using.
It did work with 4.13 though:

RunUAT.bat -ScriptsForProject=H:\Game\Game.uproject BuildCookRun -nocompileeditor -nop4 -project=H:\Game\Game.uproject -cook -stage -clientconfig=Development -ue4exe=UE4Editor-Cmd.exe -SKIPEDITORCONTENT -nodebuginfo -targetplatform=Linux -utf8output -build -noclient -server -serverconfig=Development -serverplatform=Linux

Can you provide the steps to building that you’re using? After downloading the 4.14 engine, I ran Setup.bat and GenerateProjectFiles.bat. Inside VS I built CrashReportClient for Development Editor/Linux followed by building UE4 for DevelopmentEditor/Win64 and again for DevelopmentEditor/Linux. All of this completed successfully and I was able to create/compile a project for Linux successfully. Let me know if you’re able to compile with Visual Studio rather than using the command line or if you get the same compile errors.

Pretty much the same steps. Download the source, run Setup.bat, run GenerateProjectFiles.bat and build UE4 in VS. For building the project I used the aforementioned command because it’s more convenient for automated builds since it continues with cooking the assets right after it’s done building.

Anyway, I tried building with VS as you suggested. Building UE4 for DevelopmentEditor/Linux succeeds but when I try building the game project for DevelopmentServer/Linux I’m getting the exact same linker errors.

Building the project for Development Server completed successfully for me after building for Development Editor. Can you try building the project for DeleopmentEditor/Linux first then build again for DevelopmentServer?

You have to update to clang v8 and use the LINUX_MULTIARCH_ROOT environment variable. I ran into a different side of this here: Linux "platform sdk is missing" after 4.14 update - Platform & Builds - Unreal Engine Forums and updated the Linux wiki page (linked in my question/answer).

Perfect, it builds successfully now! Thanks!