![b4906fe124631dacc093d2429fe5cd17.png](https://i-blog.csdnimg.cn/blog_migrate/73d87ddda5cf98d76a3eb117dab57111.png)
在Windows环境打包LinuxServer和Windows下运行的exe。
第一步:我们需要使用源码版引擎,先下载下来,不要着急编译。如果已经有源码了的,与下面步骤相同。
第二步:到官方文档中下载交叉编译需要的工具链,然后安装。
Linux的交叉编译docs.unrealengine.com第三步:打开环境变量设置:
![d61d47f590c0b31a53bb3a66f153da8b.png](https://i-blog.csdnimg.cn/blog_migrate/775848bdb55dad8ee97225cba4031f4a.jpeg)
点击新建:
![a51459b7528198e7a69abffdb24df68d.png](https://i-blog.csdnimg.cn/blog_migrate/51c571e141738f95cdf301242876d233.png)
创建一个名为"LINUX_MULTIARCH_ROOT"的变量,路径就是安装clang工具的路径。
第四步:进行编译源码需要的步骤,Setup.bat、GenerateProjectFiles.bat(已经有源码版也需要这一步),之后编译模块"UE4":
![8e419665513e37431590872a02d34708.png](https://i-blog.csdnimg.cn/blog_migrate/e67f2a180037a6f5414d9bd9ebcf0ed2.jpeg)
编译成功后,再分别编译"AutomationTool"、"UnrealBuildTool"、"UnrealFrontend":
![29cdc1ffed4f9f3e83f786a783c1456d.png](https://i-blog.csdnimg.cn/blog_migrate/48b0963c0461c642ca67e98a757dfb7a.jpeg)
![3b1d9f7e51d28c4a07ba2784fb06556f.png](https://i-blog.csdnimg.cn/blog_migrate/3c1a012538c4a6c4e92ea5332104eabb.jpeg)
![aa27397773606b2974bf7caa0dc00857.png](https://i-blog.csdnimg.cn/blog_migrate/99b226918b646b74d46e79fe24c86032.jpeg)
第五步:项目中需要一个"项目名Server.Target.cs"文件:
![cfa1716d7c6460f1b5c2df319000a59a.png](https://i-blog.csdnimg.cn/blog_migrate/a6ed4e028799dd779795ee2881473d00.jpeg)
// 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文件,右键选择刚刚编译好的引擎版本
![aa901c02672d80e8de21a0a800ad792e.png](https://i-blog.csdnimg.cn/blog_migrate/144e7317ab5aacb49b0aede247247e8e.png)
然后生成VS的项目文件。
第六步:打开项目的sln文件进入VS,选择:
![3514bfcaa30b96b2bfe82d22b49eb489.png](https://i-blog.csdnimg.cn/blog_migrate/5ec62bb0f342c7333702c073979aa9df.jpeg)
平台选择linux:
![f6cff693d8473df4e43a1c972b47b9eb.png](https://i-blog.csdnimg.cn/blog_migrate/4fc4ccc2384af6858b281e1fb00c4fd1.png)
然后:
![3465cb066ce849ad53be8954868d7ff9.png](https://i-blog.csdnimg.cn/blog_migrate/34e519b8a8fe4387680a777d0dae7234.jpeg)
如果一切顺利,环境就已经可以了:
![8c6f57bbc35c0c73f32a2b1a6b05f0ac.png](https://i-blog.csdnimg.cn/blog_migrate/af2492fffb9b73d046a0adc8622910d8.jpeg)
项目目录BinariesLinux文件夹中出现了这几个文件(这几个文件不是我们最终需要的,只是为了确认环境),我们想要的LinuxServer还需要在项目中进行Custom的设置:
打开项目,点击窗口选项中的"项目启动程序":
![0ba3f2e64b1a5f05ec8f138244be72f3.png](https://i-blog.csdnimg.cn/blog_migrate/37d11cd2060b027109ccf2bbc96f2e3b.jpeg)
然后点击下方的小+:
![a0cbce9e969c7ea7960fe49df112f598.png](https://i-blog.csdnimg.cn/blog_migrate/3dff7f0a19930532c5b19fb2dcbc450d.jpeg)
![be90d9560602de25a232399fa580242e.png](https://i-blog.csdnimg.cn/blog_migrate/7c918de5bfc968d2ccfb3cf60b5dd237.jpeg)
烘焙的平台只选择"LinuxServer"、"WindowsNoEditor":
![b477635886f7d9e564230014d9113c8b.png](https://i-blog.csdnimg.cn/blog_migrate/4013f7766cf2ec09ae23457c494e1863.png)
烘焙的语言只选"en":
![53cab9b2b653bede4907147ad7b264ca.png](https://i-blog.csdnimg.cn/blog_migrate/b9be5aebe252f79f7308496177afe7cd.png)
然后烘焙的地图保持默认,找到包:
![14bb6a1d8b272d777a058ac60cf42964.png](https://i-blog.csdnimg.cn/blog_migrate/29b1db58e1028e869519db2fd9c81ae5.png)
![7319b5ec80365f73a7d0e3b36e0beeee.png](https://i-blog.csdnimg.cn/blog_migrate/f3154f0f1cd5ea28ecbd421287ffcd50.jpeg)
到此,一切准备就绪,点击右上角返回按钮,回到下面界面:
![70269e0e7273730e0e63b4a06f1f6016.png](https://i-blog.csdnimg.cn/blog_migrate/df02d717cc250e8924d4b5d075930d0e.jpeg)
点击"启动此描述文件":
以后再需要打包,点击一下这个按钮,LinuxServer和WindowsNoEditor会一起打包出来!
![ee6826292064d109c986b0bd491e207c.png](https://i-blog.csdnimg.cn/blog_migrate/aea989d7b4552b7ff4b2b780d564ac3d.jpeg)
就开始编译打包LinuxServer和Windows中可运行的exe。
等待运行完成,打开刚才设置的打包路径:
![9d02668eba85e9d65a9adbec52d2bf52.png](https://i-blog.csdnimg.cn/blog_migrate/a348ddb0283d12179937a34f0c81d497.png)
有这两个文件夹,WindowsNoEditor不用说,直接点击exe就可以启动客户端程序,LinuxServer点进去,会看到一个:
![49da881dbdcef6c3359c4e02c0409743.png](https://i-blog.csdnimg.cn/blog_migrate/0a497d1ea1d6ccef91f04cf5233393c6.jpeg)
这个Shell就是用来在Linux环境中启动的脚本。使用时,把LinuxServer这个文件夹放在Linux中,运行Shell就可以了。