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

Unity UWP项目Xbox构建失败:IL2CPP编译报错求助

Unity IL2CPP构建UWP项目失败(退出代码4)解决方案

环境信息

  • Unity版本:2022.1.22f1
  • Visual Studio版本:2019 16.11.22

问题现象

将Unity项目通过IL2CPP构建为UWP项目时,在Unity构建环节直接失败,未进入Visual Studio部署阶段。错误核心表现为il2cpp.exe执行编译命令时退出代码4,调用VS的cl.exe编译Lump_libil2cpp_vm.cpp文件时出错。

构建输出日志(中文翻译版)

1>
1>调用信息:可执行文件: "D:\Visual studio\Community 2022\VC\Tools\MSVC\14.34.31933\bin\HostX64\x64\cl.exe"
1>参数: "D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\Source\lumpedcpp\Lump_libil2cpp_vm.cpp" /nologo /c /bigobj /W3 /Z7 /EHs /GR- /Gy /utf-8 /wd4102 /wd4800 /wd4056 /wd4190 /wd4723 /wd4467 /wd4503 /wd4996 /wd4200 /wd4834 /wd4722 /Od /Zc:inline /RTC1 /MDd /DWINDOWS_UWP /DUNITY_UWP /DUNITY_WSA_10_0 /DUNITY_WSA /DUNITY_WINRT /DPLATFORM_WINRT /DNET_4_0 /DUNITY_AOT /DIL2CPP_MONO_DEBUGGER_DISABLED /DGC_NOT_DLL /DRUNTIME_IL2CPP /DIL2CPP_ENABLE_WRITE_BARRIERS=1 /DIL2CPP_INCREMENTAL_TIME_SLICE=3 /DIL2CPP_DEBUG=1 /DBASELIB_INLINE_NAMESPACE=il2cpp_baselib /DIL2CPP_DEFAULT_DATA_DIR_PATH=Data/il2cpp_data /DBASELIB_USE_DYNAMICLIBRARY=1 /D_WIN32 /DWIN32 /DWIN32_THREADS /D_WINDOWS /DWINDOWS /D_UNICODE /DUNICODE /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS /D_WINSOCK_DEPRECATED_NO_WARNINGS /DNOMINMAX /D_DEBUG /DDEBUG /DIL2CPP_DEBUG=1 /DWINDOWS_SDK_BUILD_VERSION=22621 /D__WRL_NO_DEFAULT_LIB__ /DWINAPI_FAMILY=WINAPI_FAMILY_APP /I"D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\IL2CPP\libil2cpp" /I"D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\IL2CPP\libil2cpp" /I"D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\IL2CPP\external\bdwgc\include" /I"D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\IL2CPP\external\xxHash" /I"D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\IL2CPP\external\baselib\Include" /I"D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\IL2CPP\external\baselib\Platforms\UniversalWindows\Include" /I"D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\IL2CPP\libil2cpp\pch" /I"D:\Visual studio\Community 2022\VC\Tools\MSVC\14.34.31933\include" /I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared" /I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um" /I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\winrt" /I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt" /Fo"D:\Unity\MiningGame\Builds\UWP\1.0\build\obj\il2cppOutputProject\x64\Debug\libil2cpp\11A0BDF31787E9DFF371F2BC88A6BFA5.obj" /Fd"D:\Unity\MiningGame\Builds\UWP\1.0\build\obj\il2cppOutputProject\x64\Debug\libil2cpp\11A0BDF31787E9DFF371F2BC88A6BFA5.pdb"
1>环境变量PATH: C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86;C:\Program Files (x86)\Windows Kits\10\bin\x86;D:\Visual studio\Community 2022\VC\Tools\MSVC\14.34.31933\bin\HostX64\x64
1>
1>   在 Unity.IL2CPP.Building.CppProgramBuilder.BuildAllCppFiles(IEnumerable`1 sourceFilesToCompile, IBuildStatisticsCollector statisticsCollector)
1>   在 Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
1>   在 il2cpp.Compilation.CompilationDriver.Run(RuntimePlatform platform, Il2CppCommandLineArguments il2CppCommandLineArguments, BuildingOptions buildingOptions, ReadOnlyCollection`1 matchedAssemblyMethodSourceFiles)
1>   在 il2cpp.Program.DoRun(String[] args, RuntimePlatform platform, Il2CppCommandLineArguments il2CppCommandLineArguments, BuildingOptions buildingOptions, Boolean throwExceptions)
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(46,5): 错误 MSB3073: 命令 ""D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\\IL2CPP\build\deploy\il2cpp.exe" --libil2cpp-static --compile-cpp -architecture=x64 -configuration=Debug -platform=WinRT -outputpath="D:\Unity\MiningGame\Builds\UWP\1.0\\build\bin\x64\Debug\GameAssembly.dll" --data-folder="D:\Unity\MiningGame\Builds\UWP\1.0\\build\bin\x64\Debug\\" -cachedirectory="D:\Unity\MiningGame\Builds\UWP\1.0\\build\obj\il2cppOutputProject\x64\Debug\\" -generatedcppdir="D:\Unity\MiningGame\Builds\UWP\1.0\Il2CppOutputProject\\Source"  --incremental-g-c-time-slice=3 --baselib-directory="D:\Unity\Editor\2022.1.22f1\Editor\Data\PlaybackEngines\MetroSupport\Players\UAP\il2cpp\x64\Debug" --avoid-dynamic-library-copy --dont-deploy-baselib --profiler-report --additional-defines=WINDOWS_UWP --additional-defines=UNITY_UWP --additional-defines=UNITY_WSA_10_0 --additional-defines=UNITY_WSA --additional-defines=UNITY_WINRT --additional-defines=PLATFORM_WINRT -dotnetprofile=unityaot-win32 -verbose --relative-data-path=Data/il2cpp_data" 已退出,代码为 4。

解决步骤

  • 修复VS版本关联冲突
    日志显示Unity误调用了VS2022的编译工具链,但实际安装的是VS2019。打开Unity的「编辑 > 偏好设置 > 外部工具」,将「Visual Studio编辑器」指定为VS2019 16.11.22,确保工具链版本匹配。

  • 清理缓存与构建文件
    删除项目Builds下的UWP构建目录(D:\Unity\MiningGame\Builds\UWP\1.0),以及Unity项目根目录的Library/il2cpp_cache文件夹,彻底清理后重新构建,避免缓存导致的编译异常。

  • 调整Windows SDK版本
    VS2019对Win11 SDK(22621)兼容性不佳,建议安装并使用Win10 SDK 10.0.19041.0:

    1. 打开VS2019安装器,修改安装内容,勾选「Windows 10 SDK (10.0.19041.0)」,卸载过高版本的SDK。
    2. 在Unity的「Player设置 > 其他设置 > 配置」中,将「Windows SDK版本」设置为「随Visual Studio安装」。
  • 检查IL2CPP构建参数
    确认Unity Player设置:

    • 「脚本后端」选择IL2CPP
    • 「目标架构」为x64
    • 临时关闭「增量GC」选项,重新尝试构建。

内容的提问来源于stack exchange,提问作者Nathaniel Stauffer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:10:47