
好像2025年初,Epic官方发布了最新版UE5.5.1以来就问题不断。。。本以为在后续优化子版本中,官方会做修改。没想到一直到5.5.4版本,还是问题依旧。
好,我们直接进入主题,这次分享一下我是如何解决UE5.5.4(1-4)出现的源码编译问题,电脑死机蓝屏问题的。当我们Setup下载好依赖,GenerateProjectFiles后开始编译UE5.sln,激动的心,颤抖的手。。。VS2022编译运转飞快,然而,,,突如其来出现好多个Widows系统弹窗,搞的人心里咯噔一下。。。弹窗如下

cl.exe-应用程序错误 0x00007FFACF794F06指令引用了0x000000000000000014内存。该内存不能为read。
要终止程序,请单击"确定"。
要调试程序,请单击"取消"。
VS输出Log里显示的是一堆如下类似的消息:
12>D:\UEsrc\UE554src\Engine\Source\Runtime\Core\Public\Algo\Impl\BinaryHeap.h(155): fatal error C1001: 内部编译器错误。
12>(编译器文件“D:\a\_work\1\s\src\vctools\Compiler\Utc\src\p2\main.c”,第 234 行)
12>D:\UEsrc\UE554src\Engine\Source\Editor\UnrealEd\Private\EditorCommandLineUtils.cpp(455): fatal error C1001: 内部编译器错误。
12>(编译器文件“D:\a\_work\1\s\src\vctools\Compiler\Utc\src\p2\main.c”,第 234 行)
第一次编译完,大概会出现10-20次弹窗吧。运气不好的话,直接蓝屏!!!蓝屏之后系统文件很容易损害,往往需要重新编译UE5,感觉之后蓝屏的概率更高了,死循环。。
Up主做过很多次试错研究,期间无数次重装VS,重装win10系统,刷新各种驱动,都没有卵用的。在这里直接分享一下解决办法,为各位UE5开发者节省宝贵的时间。
造成这些问题的原因是Epic官方的不负责任态度。官网在发布新版本时都会更新大长篇更新内容,营销虚荣心作祟。却对新版源码编译的注意事项避而不谈。说的更直白点,应该对UBT等工具的优化配置方案说明一下。
UE5整体上5000+万行代码,要编译全部源码一般需要1小时左右。这个时候不知道是Epic的程序员疯了,还是领导疯了,为了提高编译效率采用了多线程编译方式,默认设置你的PC的CPU有多少内核,他就用多少内核。在编译的时候你可以打开性能管理器监视下CPU利用率,CPU都是100%爆满的!
我就当大家都懂一点计算机吧,长时间CPU爆满,电脑是没办法响应其他中断请求的。不难理解,这也就是我们在编译UE5源码时,频繁死机蓝屏的根源吧!
官方一味地追求编译速度,却忽视了用户PC的承载能力,或者高估了Windows系统响应能力。在这吐槽一下Epic产品设计,大厂也就一草台班子,急功近利!
依据上面的思考,Up主找到了UBT项目对配置进行了优化调整。对于初学者可能对UBT比较陌生,这里就直接按本文修改即可,不必深究。
UBT的配置文件目录:一般在{UE554}\Engine\Source\Programs\UnrealBuildTool\Configuration\BuildConfiguration.cs
对其中的122行public int MaxParallelActions { get; set; } = 0; 修改一下
0的设置就是占用CPU全部内核,在这你可以按照自己开发需求设当修改。
Up主自己的测试结果如下,当MaxParallelActions = 1时,编译时大约CPU占用10%左右,我的开发主机是i9-13900K,24核的。改为1核后,不在出现弹窗与C1001报错。但是编译总时长明显增加,约1小时左右。改为单核后,虽然总体效率低了,但是单个模块的编译效率是一样的。
但是呢,毕竟时间宝贵,编译时间还是快一点好些。于是,我把参数改为了双核,即MaxParallelActions = 2,测试编译时间明显加快,我的电脑花费15分钟不到。这时候的电脑CPU消耗如下,大约30%CPU左右。对于这个消耗,我还是能接受的。

这个核心数说过了,各位开发看官看自己情况配置,最好不要CPU100%爆满。
然而,然而,不要走啊,还没完。但我测试双核CPU的时候,该死的弹窗还是出现了。但是,电脑不在蓝屏死机,这个和预想的结果一致。
弹窗C1001报错问题,仍未解决呢。我们接着探索。
首先这个弹窗报错,不是UE5源码写的有Bug。源码本身并没有问题,经过我花费2天的研究,搞清了这个问题本质。虽然他报告了编译器内部错误,但并不是编译本身报错,而是一个【链接】Link问题。也就是说编译器本身也没有问题的。
那么为什么会出现这个Link问题呢。分析UE5输出Log你就会发现,编译过程中都是先编译一个模块,之后在对他创建静态库,也就是链接动作。造成出错的原因,又是那个人为的老问题了,太疯狂的追求编译效率,而忽视了编译器本身的承载能力,造成了代码编译与链接动作的冲突问题。
要解决这个链接问题,还是需要找UBT参数设置。
配置文件目录:{UE554}\Engine\Source\Programs\UnrealBuildTool\Configuration\TargetRules.cs 找到2149行
public bool bAllowLTCG { get; set; } ; 默认系统会启用这个LTCG设置为true。
就是启动 链接时间生成代码 功能。还是为了疯狂提高编译效率目的。
我们修改一下,bAllowLTCG { get; set; } = false; //禁用链接时间生成代码
大白话就是在编译器链接的时间内,不进行代码生成编译动作。
这样以来,效率虽然略微减低,但安全性大大提高了。
修改完设置,从新编译UBT工具,再次重新编译UE5试下结果。
弹窗问题不在出现。问题完美解决。
(多核编译不完全保证出现弹窗报错,但出现概率已经大大降低了。单核实测完全没有问题。)
补充一下:对于初学者可能不太会编译UBT。很简单,在改完上面UBT源码中的配置后,关闭VS,运行bat批处理GenerateProjectFiles.bat系统自动重新生成UBT编译工具的,后面启动VS会使用编译的UBT工具来编译你的UE5工程。
另外,说下编译时间问题。
UE5源码的代码量5000+w,非常可观(合计2800个模块左右),一般用户在第一次编译时大概有6000-8000左右的编译任务量,Up主自己对UE5的代码量进行了删减轻量化(需要对内部模块插件等的依赖链进行解耦合),我自己修改后的UE5源码大概1500多个模块,第一次编译任务量只有3500左右。所以编译时间会比一般用户的编译时间少一半。
贴心小技巧:编译UE5源码前,把UnrealEditor.Target.cs中设置一下,bBuildAllModules = false; 可以减少很多不必要的模块编译噢!节省您宝贵的时间和硬盘空间。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2026年3月,补充更新: 上述的内容是从软件设置方面对UE5.5编译报错弹窗问题的缓解和优化。 博主后面也经过实测验证,发现根本问题还在于CPU硬件设置问题。 当修改电脑的BIOS设置的CPU超频增强选项后,这个问题彻底解决。 在此补充分享一下。 需要关闭Advaced Mode/Ai Tweaker/Thermal Velocity Boost中的TVB电压增强选项(因特尔超频技术)。 各人不同电脑的主板不同,自己找下相关的TVB选择即可。 博主本人PC的配置如下,

