
在Windows环境打包LinuxServer和Windows下运行的exe。
第一步:我们需要使用源码版引擎,先下载下来,不要着急编译。如果已经有源码了的,与下面步骤相同。
第二步:到官方文档中下载交叉编译需要的工具链,然后安装。
Linux的交叉编译docs.unrealengine.com第三步:打开环境变量设置:

点击新建:

创建一个名为"LINUX_MULTIARCH_ROOT"的变量,路径就是安装clang工具的路径。
第四步:进行编译源码需要的步骤,Setup.bat、GenerateProjectFiles.bat(已经有源码版也需要这一步),之后编译模块"UE4":

编译成功后,再分别编译"AutomationTool"、"UnrealBuildTool"、"UnrealFrontend":



第五步:项目中需要一个"项目名Server.Target.cs"文件:

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
using System.Collections.Generic;
[SupportedPlatforms(UnrealPlatformClass.Server)]
public class 项目名ServerTarget : TargetRules
{
public 项目名ServerTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Server;
bUsesSteam = true;
ExtraModuleNames.Add("项目名");
}
}
然后找到项目的.uproject文件,右键选择刚刚编译好的引擎版本

然后生成VS的项目文件。
第六步:打开项目的sln文件进入VS,选择:

平台选择linux:

然后:

如果一切顺利,环境就已经可以了:

项目目录BinariesLinux文件夹中出现了这几个文件(这几个文件不是我们最终需要的,只是为了确认环境),我们想要的LinuxServer还需要在项目中进行Custom的设置:
打开项目,点击窗口选项中的"项目启动程序":

然后点击下方的小+:


烘焙的平台只选择"LinuxServer"、"WindowsNoEditor":

烘焙的语言只选"en":

然后烘焙的地图保持默认,找到包:


到此,一切准备就绪,点击右上角返回按钮,回到下面界面:

点击"启动此描述文件":
以后再需要打包,点击一下这个按钮,LinuxServer和WindowsNoEditor会一起打包出来!

就开始编译打包LinuxServer和Windows中可运行的exe。
等待运行完成,打开刚才设置的打包路径:

有这两个文件夹,WindowsNoEditor不用说,直接点击exe就可以启动客户端程序,LinuxServer点进去,会看到一个:

这个Shell就是用来在Linux环境中启动的脚本。使用时,把LinuxServer这个文件夹放在Linux中,运行Shell就可以了。