编译Unreal Enigne

获取源码:

参考:下载虚幻引擎源代码 | 虚幻引擎 5.6 文档 | Epic Developer Community

1.先注册Epic账号:Epic Games Developers - Epic Games Developers

2.确保有Github账号

3.点击Epic主页右上角的用户名,在下拉菜单里找到“账户”,进入账号设置页面,选中左边的“已关联账户”,然后找到Github,关联

4.关联Github后,会发送邮件给你,让你在7天内点击链接加入UE的组织,这里我不知道为何没收到邮件。手动前往Github页面,选择“Your organizations”,然后手动加入组织

5.加入组织后,才能正常看到UE的项目,否则打开页面是404的:GitHub页面

 

6.如果不是为了在主线上开发,只是要发布版源码的话,直接去发布页面,找到对应的版本下载下来即可,注意,需要同时下载Source Code(4.27.2)Commit.gitdeps.xml(4.27.2)

 

 

编译(以4.27.2为例):

参考:从源代码构建虚幻引擎 | 虚幻引擎 4.27 文档 | Epic Developer Community

UnrealEngine/README.md at 4.27.2-release · EpicGames/UnrealEngine

虚幻unreal4.27源码编译编辑器流程与问题汇总 - 昂流 - 博客园

注1:4.27.2全部编译完占用空间大概78G,最后预留个100G的空间

注2:4.27.2官方推荐用VS2017,但实测VS2022也可以,不过要确保Window SDK版本不能太新,否则无法编译,这里用的是:Windows 11 SDK (10.0.22621.0)

注3:编译时对电脑性能要求不高,但如果内存不足会报堆空间不足错误,把虚拟内存页设置大点:高级系统设置->高级->性能设置->高级-> 虚拟内存 更改->

 

1.替换依赖配置​​:将上面下载的Commit.gitdeps.xml文件替换到Engine/Build/目录中,下面步骤Setup.bat安装依赖资源的时候,会从这个配置里去下载资源,默认的xml下载地址会失败。

2.运行项目根目录下的Setup.bat,这个步骤将开始下载引擎所需的依赖资源的二进制文件,大概8G,可断点续传。如果上面没有正确替换Commit.gitdeps.xml,这里下载资源会报错。

  注:此过程很慢长,但是有个加速方式:可以多线程下载,速度倍增。例如:Setup.bat --threads=20(网上看到的,我没测试过)

3.运行项目根目录下的GenerateProjectFiles.bat(需要电脑有安装VS,这里装的是Visual Studio Community 2022),生成UE4的VS工程,该过程比较快,大概一二分钟。

4.打开UE4.sln(如果是UE4的话,官方推荐是用VS2017,但我这里用VS2022也可以正常编译):

  如果提示未安装目标框架,直接选推荐的选项即可

  

  将解决方案配置设置为 开发编辑器(Development Editor)

  

  顺便把UE4设置为启动项目,右键单击UE4目标并选择“设置为启动目标”。

  

5.右键单击UE4目标并选择 构建(Build),此过程大概会花费比较久

  

6.此时直接编会报错:

报错1:error C4668: 没有将“_NOEXCEPT_TYPES_SUPPORTED”定义为预处理器宏,用“0”替换“#if/#elif”

  解决:找到HoloLensTargetPlatform.Build.cs文件,打开,在最后一行添加代码
  bEnableUndefinedIdentifierWarnings = false,解决报错。
  
  参考:https://blog.csdn.net/qq_59095655/article/details/132892549

报错2:error C4834: 放弃具有 [[nodiscard]] 属性的函数的返回值

  解决:找到SteamVRInputDeviceFunctionLibrary.cpp文件,打开

  GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, (TEXT("Unable to find Action [%s] for Action Set [%s]"), *ActionName.ToString(), *ActionSet.ToString()));
  改为
  GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("Unable to find Action [%s] for Action Set [%s]"), *ActionName.ToString(), *ActionSet.ToString()));

报错3:error C4756: 常量算法中溢出

  原因:这是windows SDK版本错误导致的,比如有的UE版本要指定某个版本的SDK(UE4.27.2推荐10.0.22621.0),而VS没有安装目标SDK,或者VS存在多个SDK,使用的默认版本不是目标版本

  解决1(推荐):去Visual Studio Installer里,将其他SDK版本删了,安装目标版本

  解决2:打开Engine\Saved\UnrealBuildTool\BuildConfiguration.xml,将里面的

  

  修改为,默认没有指定SDK版本,则UE会使用默认版本,这里设定为目标版本:

  

  该种方式治标不治本,虽然引擎的编译解决了,但UE项目编译C++的时候,同样会因为SDK版本失败

  参考:Getting "error C4756: overflow in constant arithmetic" while building Unreal 5.4.2 from source code - Development / Getting Started & Setup - Epic Developer Community Forums

 7.构建正常完成后,可执行文件位于:工程目录\Engine\Binaries\Win64\UE4Editor.exe,直接打开即可运行UE4

  也可以通过在VS里直接运行以启动调试

  

posted @ 2025-07-17 00:15  JeasonBoy  阅读(285)  评论(0)    收藏  举报