Linux Package FAIL!

[HELP] Linux Package FAIL!
Hello, I been trying to package for Linux and it failed, I compile the UE4 from source, retrieved from github in VS2013

the error are as follows:

![MainFrameActions: Packaging (Linux): ErrorReporter.Error: ERROR: AutomationTool error: No files found to deploy for C:\UnrealEngine-4.4\Engine\Binaries\Linux with wildcard UE4Game and exclusions 
MainFrameActions: Packaging (Linux): BuildCommand.Execute: ERROR: BUILD FAILED
MainFrameActions: Packaging (Linux): Program.Main: ERROR: AutomationTool terminated with exception:
MainFrameActions: Packaging (Linux): Program.Main: ERROR: Exception in AutomationTool: No files found to deploy for C:\UnrealEngine-4.4\Engine\Binaries\Linux with wildcard UE4Game and exclusions 
MainFrameActions: Packaging (Linux): Stacktrace:    at DeploymentContext.StageFiles(StagedFileType FileType, String InPath, String Wi
MainFrameActions: Packaging (Linux): ldcard, Boolean bRecursive, String[] ExcludeWildcard, String NewPath, Boolean bAllowNone, Boolean bRemap, String NewName) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\DeploymentContext.cs:line 286
MainFrameActions: Packaging (Linux):    at BaseLinuxPlatform.GetFilesToDeployOrStage(ProjectParams Params, DeploymentContext SC) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Linux\LinuxPlatform.Automation.cs:line 84
MainFrameActions: Packaging (Linux):    at Project.CreateStagingManifest(ProjectParams Params, DeploymentContext SC) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Scripts\CopyBuildToStagingDirectory.Automation.cs:line 157
MainFrameActions: Packaging (Linux):    at Project.CopyBuildToStagingDirectory(ProjectParams Params) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Scripts\CopyBuildToStagingDirectory.Automation.cs:line 765
MainFrameActions: Packaging (Linux):    at BuildCookRun.DoBuildCookRun(ProjectParams Params) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 237
MainFrameActions: Packaging (Linux):    at BuildCommand.Execute() in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\BuildCommand.cs:line 37
MainFrameActions: Packaging (Linux):    at AutomationTool.Automation.Execute(List`1 CommandsToExecute, CaselessDictionary`1 Commands) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Automation.cs:line 367
MainFrameActions: Packaging (Linux):    at AutomationTool.Automation.Process(String[] CommandLine) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Automation.cs:line 335
MainFrameActions: Packaging (Linux):    at AutomationTool.Program.MainProc(Object Param) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Program.cs:line 160
MainFrameActions: Packaging (Linux):    at AutomationTool.InternalUtils.RunSingleInstance(MainProc Main, Object Param) in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Utils.cs:line 631
MainFrameActions: Packaging (Linux):    at AutomationTool.Program.Main() in c:\UnrealEngine-4.4\Engine\Source\Programs\AutomationTool\Program.cs:line 107
MainFrameActions: Packaging (Linux): Program.Main: ERROR: No files found to deploy for C:\UnrealEngine-4.4\Engine\Binaries\Linux with wildcard UE4Game and exclusions 
MainFrameActions: Packaging (Linux): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (Linux): Program.Main: AutomationTool exiting with ExitCode=30
MainFrameActions: Packaging (Linux): Domain_ProcessExit
MainFrameActions: Packaging (Linux): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (Linux): AutomationToolLauncher exiting with ExitCode=30
MainFrameActions: Packaging (Linux): copying UAT log files...
MainFrameActions: Packaging (Linux): RunUAT.bat ERROR: AutomationTool was unable to run successfully.
MainFrameActions: Packaging (Linux): BUILD FAILED][1]

I guess you are packaging a content-only project. In that case, you need to build UE4 (project) in Development configuration for Linux (using the supplied cross-toolchain) beforehand. We will fix that by providing a prebuilt binary in future releases to be used with content-only projects.

ok, when you said “build UE4 (project) in Development configuration for Linux”, what do you mean by that? is it with in VS2013? I did add an environment variable (Control Panel->System->Advanced system settings->Advanced->Environment variables) named LINUX_ROOT with proper toolkit folder

Yes, it’s in VS. Build the project UE4 in Development configuration for Linux platform. If you don’t have Linux in platform list, make sure you regenerated the projects after setting LINUX_ROOT variable.

Judging from the logs, you tried to build UnrealSync project. You need to build UE4 - please find that project in solution, right click and choose Build.

I tried to build the Development → Linux, and I got other error and full error list is in the attached picture

16>Clang++.exe : error : linker command failed with exit code 1 (use -v to see invocation)
16>  -------- End Detailed Actions Stats -----------------------------------------------------------
16>ERROR : UBT error : Failed to produce item: C:\UnrealEngine-4.4\Engine\Binaries\Linux\UnrealSync
16>  Cumulative action seconds (8 processors): 0.00 building projects, 521.42 compiling, 0.00 creating app bundles, 0.00 generating debug info, 3.40 linking, 0.00 other
16>  UBT execution time: 148.75 seconds
16>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "..\..\Build\BatchFiles\Build.bat UnrealSync Linux Development" exited with code -1.
========== Build: 10 succeeded, 6 failed, 16 up-to-date, 0 skipped ==========

I did select the UE4 project and build with Linux & Development in the drop down menu, and there are 6 programs that failed to compile. should I worry about it?

MinidumpDiagnostics
SymbolDebugger
UE4EditorServices
UnrealHeaderTool
UnrealLaunchDaemon
UnrealSync

No. As long as you have UE4Game in Engine/Binaries/Linux, packaging should work.

ook, so I got both Linux and Win64 build, do I run the win64 version and from there to package the Linux?

Do what you did previously, i.e. package from the editor :slight_smile:

To sum up:

  1. build UE4 in Linux Development configuration to get Engine/Binaries/Linux/UE4Game file
  2. build UE4 in Win64 Development Editor configuration to have the editor
  3. Run the editor, open your project, and then package it for Linux.

thanks now it built, I transfer the built folder to my Linux Target, how to test it? in Terminal I try to run UE4Game and it says bash: UE4Game: Command not found; I ran from the Binary compiled Linux folder.

*Update, now I chmod +x on the UE4Game, and it wont run at all…

If you packaged a project with 4.4, then it’s like this:

cd LinuxNoEditor/Engine/Binaries/Linux
chmod +x UE4Game
./UE4Game ../../../YourProjectName/YourProjectName.uproject

The packaging in 4.5 has been improved to avoid the need to specify the project, so if you packaged with 4.5-preview it’s a bit different:

cd LinuxNoEditor/YourProjectName/Binaries/Linux
chmod +x YourProjectName
./YourProjectName

hummm, the compiled Linux project does not contain “YourProjectName.uproject”

my Project only contains 2 folders “Content” & “Saved”

That file is inside .pak, that is, it should be found (unless you have a typo) - go ahead and try the above.

Hello, RCL I tried to follow the packaging instruction as your said in UE4.5. but I still got errors when I packaged the linux client(Step 3:Run the editor, open your project, and then package it for Linux.)
Here is my errors log,can you check it for me. thank you very much.

Your error is caused by SubstanceCore module. Whatever that module is, it doesn’t seem to support Linux:

UnrealBuildTool: ERROR: Unable to instantiate instance of ‘SubstanceCore’ object type from compiled assembly ‘StormUnitedModuleRules’. Unreal Build Tool creates an instance of your module’s ‘Rules’ object in order to find out about your module’s requirements. The CLR exception details may provide more information:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> UnrealBuildTool.BuildException: ERROR: Platform not supported by Substance

You are right we use Allegorithmic substance for UE4 (Plugins - Substance 3D) and it seems like they don’t support linux
I’ve just seen on their forum other people have the same problem, they don’t support linux

Hi,RCl. thank you for you helped. I am sorry to bother you again. finally I removed the substance then successful packaged the linux server 32.
but it still have a error when I compile the linux 64(both engine and game)
Here is my error:

I have been switched to UE4.5.1 and I am using vs2013.
I am really needing you help. I am looking forward you can give me an answer. thank you very much!

I commented there. Doesn’t seem to be related to Linux build process specifically.

hi, I got the following error if I build the engine with Development->Linux configuration

no UE4Game in Engine/Binaries/Linux :frowning:

1>  -------- End Detailed Actions Stats -----------------------------------------------------------
1>ERROR : UBT error : Failed to produce item: C:\Unreal_Engine_Git\UnrealEngine-4.4.3\UnrealEngine-4.4.3-release\Engine\Plugins\Runtime\CustomMeshComponent\Binaries\Linux\libUE4Game-CustomMeshComponent-Static.a
1>  Cumulative action seconds (8 processors): 0,00 building projects, 546,96 compiling, 0,00 creating app bundles, 0,00 generating debug info, 0,00 linking, 0,00 other
1>  UBT execution time: 148,02 seconds
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "..\..\Build\BatchFiles\Build.bat UE4Game Linux Development" exited with code -1.
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========

any idea ? I use 4.4.3