You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UE5.3项目C++编译失败问题求助

UE5.3创建C项目/添加C代码编译失败问题排查

问题描述

尝试创建C版Unreal Engine 5.3项目,或在蓝图项目中添加C代码时,均出现编译失败,具体编译日志如下:

The project could not be compiled. Would you like to open it in Visual Studio 2022?

Running C:/Program Files/UE_5.3/Engine/Build/BatchFiles/Build.bat Development Win64 -Project="E:/files/Unreal Projects/MyProject5/MyProject5.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
Using bundled DotNet SDK version: 6.0.302
Running UnrealBuildTool: dotnet "../../Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll" Development Win64 -Project="E:/files/Unreal Projects/MyProject5/MyProject5.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE
Log file: C:\Users\pietr\AppData\Local\UnrealBuildTool\Log.txt
Creating makefile for MyProject5Editor (no existing makefile)
@progress push 5%
Parsing headers for MyProject5Editor
  Running Internal UnrealHeaderTool "E:\files\Unreal Projects\MyProject5\MyProject5.uproject" "E:\files\Unreal Projects\MyProject5\Intermediate\Build\Win64\MyProject5Editor\Development\MyProject5Editor.uhtmanifest" -WarningsAsErrors -installed
Total of 0 written
Reflection code generated for MyProject5Editor in 1.49836 seconds
@progress pop
Building MyProject5Editor...
Using Visual Studio 2022 14.39.33522 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519) and Windows 10.0.18362.0 SDK (C:\Program Files (x86)\Windows Kits\10).
Determining max actions to execute in parallel (4 physical cores, 8 logical cores)
  Executing up to 4 processes, one per physical core
  Requested 1.5 GB memory per action, 2.99 GB available: limiting max parallel actions to 1
------ Building 6 action(s) started ------
[1/6] Compile [x64] SharedPCH.Engine.Cpp20.cpp
C:\Program Files\UE_5.3\Engine\Source\predefined C++ types (compiler internal)(420): error C2248: 'FHazardPointerCollection::FHazardRecord::FHazardRecord': impossibile accedere a private membro dichiarato nella classe 'FHazardPointerCollection::FHazardRecord'
C:\Program Files\UE_5.3\Engine\Source\Runtime\Core\Public\Experimental\Containers\HazardPointer.h(86): note: vedere la dichiarazione di 'FHazardPointerCollection::FHazardRecord::FHazardRecord'
C:\Program Files\UE_5.3\Engine\Source\Runtime\Core\Public\Experimental\Containers\HazardPointer.h(77): note: vedere la dichiarazione di 'FHazardPointerCollection::FHazardRecord'
C:\Program Files\UE_5.3\Engine\Source\predefined C++ types (compiler internal)(420): note: il contesto di creazione dell'istanza del modello (prima il meno recente) ?
C:\Program Files\UE_5.3\Engine\Source\Runtime\Core\Public\Experimental\Containers\HazardPointer.h(133): note: vedere il riferimento all'istanza 'void __builtin_array_init_helper<FHazardPointerCollection::FHazardRecord>(_T *,size_t) noexcept(<expr>)' della funzione modello di cui ? in corso la compilazione
        with
        [
            _T=FHazardPointerCollection::FHazardRecord
        ]
[2/6] Resource Default.rc2
Total time in Parallel executor: 16.25 seconds
Total execution time: 20.99 seconds

问题原因

这是Visual Studio 2022 17.9版本(对应MSVC工具链14.39.33519)与UE5.3的兼容性bug:编译器内置的__builtin_array_init_helper函数在初始化数组时,错误地尝试访问FHazardPointerCollection::FHazardRecord的私有构造函数,触发了C2248访问权限错误。

解决方案

  • 升级Visual Studio 2022到最新版本:微软在后续的VS更新中修复了该编译器内置函数的问题,更新后即可正常编译。
  • 临时降级VS版本:如果暂时无法升级,可以降级到Visual Studio 2022 17.8及以下版本,该版本与UE5.3的兼容性更稳定。
  • 确认项目C标准设置:确保项目的C标准为C20(UE5.3默认配置,可通过「项目设置->C->C++标准」检查确认)。

内容的提问来源于stack exchange,提问作者pietro bertipaglia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:37:33