[SOLVED] Is cross-compiling for Linux ARM wiki updated?

I’m following this wiki to try to make my UE app run on a Rockchip RK3066 (ARM) with Linux: A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums

However, I’m finding a few gaps in the steps:

-“The Linux-ARM cross compile toolchain binaries can be downloaded from clang-3.5.0-arm” <— but the v11 seems to have arm toolchain binaries too (it says “- v11 clang 5.0.0-based - for UE4 4.19 (includes extra tools for LTO compared to v10)” above). Which one should I use?

Later, it says:

“If you are using the Linux-ARM cross compile toolchain before running GenerateProjectFiles.bat below edit the following file in the UE4 source code:
…/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Linux/UEBuildLinux.cs
by commenting out the following line:
static private string DefaultArchitecture = “x86_64-unknown-linux-gnu”;
and un-commenting the linux-arm architecture line just below it:
//static private string DefaultArchitecture = “arm-unknown-linux-gnueabihf”;”

UEBuildLinux.cs is not in “…/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Linux/”, but in “…/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Platforms/Linux/”

Also, both “static private string DefaultArchitecture” and “static private string DefaultArchitecture” are not present in that file. Instead, I found this code chunk:

			string LinuxArchitectureString;
			if (Ini.GetString("/Script/LinuxTargetPlatform.LinuxTargetSettings", "TargetArchitecture", out LinuxArchitectureString))
			{
				LinuxArchitecture Architecture;
				if (Enum.TryParse(LinuxArchitectureString, out Architecture))
				{
					switch (Architecture)
					{
						default:
							System.Console.WriteLine("Architecture enum value {0} does not map to a valid triplet.", Architecture);
							break;

						case LinuxArchitecture.X86_64UnknownLinuxGnu:
							ActiveArchitecture = "x86_64-unknown-linux-gnu";
							break;

						case LinuxArchitecture.ArmUnknownLinuxGnueabihf:
							ActiveArchitecture = "arm-unknown-linux-gnueabihf";
							break;

What should I do then?

Thanks a lot in advance :slight_smile:

Ok, I managed to solve it. It seems the process got a little easier on 4.19, but it’s still not on that wiki.

For those in the same situation as me, here’s what I did:

  • From the wiki, I got “v11 clang 5.0.0-based - for UE4 4.19 (includes extra tools for LTO compared to v10)”, which includes ARM toolchain.

  • I set up the environment variables accordingly: LINUX_MULTIARCH_ROOT → \arm-unknown-linux-gnueabihf

  • Downloaded UE4 source code.

  • I didn’t modify the file “…/UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Linux/UEBuildLinux.cs” to un-comment the line “//static private string DefaultArchitecture = “arm-unknown-linux-gnueabihf”;”

  • Run GenerateProjectFiles.bat.

  • Opened the .sln file and rebuilt the source for win64.

  • Opened UE4 and loaded 2DSideScrollerExample.

  • Went to \Config and opened DefaultEngine.ini.

  • Added these lines at the top:

[/Script/LinuxTargetPlatform.LinuxTargetSettings]
TargetArchitecture=ArmUnknownLinuxGnueabihf

The I tried to build for Linux and the arm architecture was chosen.