WebGL build issue: Failed running il2cpp.exe

Hi,

Every time I tried to build my WebGL project, Unity throws up error that starts with “Failed running il2cpp.exe”

Not knowing what’s causing this problem, I did a build test with an empty WebGL project with only a simple cube in it, and the result is the same.

There must be something wrong with the editor itself, or setting related to WebGL build. What am I missing here?

Here are what I have tried so far,

  • Check any non-Latin characters in the project path string
  • Delete il2cpp-cache folder
  • Delete the entire Library folder and restart editor
  • Switch dot net framework to 4.x

The errors are as following:

Error 1

Failed running C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe --convert-to-cpp --dotnetprofile=“unityaot” --compile-cpp --libil2cpp-static --platform=“WebGL” --architecture=“EmscriptenJavaScript” --configuration=“Release” --outputpath=“D:\Unity Projects\WebGL-test projects\EmptyWebGL\Assets /…/Temp/StagingArea/Data\Native\build.bc” --cachedirectory=“D:\Unity Projects\WebGL-test projects\EmptyWebGL\Assets..\Library/il2cpp_cache” --compiler-flags="-Oz -DIL2CPP_EXCEPTION_DISABLED=1 " --emit-method-map --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_AccessibilityModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_AIModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_AndroidJNIModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_AnimationModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_AssetBundleModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_AudioModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_ClothModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_CoreModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_CrashReportingModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_DirectorModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_DSPGraphModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_GameCenterModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_GridModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_HotReloadModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_ImageConversionModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_IMGUIModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_InputLegacyModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_InputModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_JSONSerializeModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_LocalizationModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_ParticleSystemModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_PerformanceReportingModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_Physics2DModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_PhysicsModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_ProfilerModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_ScreenCaptureModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_SharedInternalsModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_SpriteMaskModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_SpriteShapeModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_StreamingModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_SubstanceModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_SubsystemsModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_TerrainModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_TerrainPhysicsModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_TextCoreModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_TextRenderingModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_TilemapModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_TLSModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UIElementsModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UIModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UmbraModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UNETModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityAnalyticsModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityConnectModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityTestProtocolModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityWebRequestAssetBundleModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityWebRequestAudioModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityWebRequestModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityWebRequestTextureModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_UnityWebRequestWWWModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_VehiclesModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_VFXModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_VideoModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_VRModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_WebGLModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_WindModule_Dynamic.bc” --additional-libraries=“C:/Unity Editors/2019.4.8f1/Editor/Data/PlaybackEngines/WebGLSupport\BuildTools\lib\modules\WebGLSupport_XRModule_Dynamic.bc” --profiler-report --map-file-parser=“C:/Unity Editors/2019.4.8f1/Editor/Data/Tools/MapFileParser/MapFileParser.exe” --directory=“D:/Unity Projects/WebGL-test projects/EmptyWebGL/Temp/StagingArea/Data/Managed” --generatedcppdir=“D:/Unity Projects/WebGL-test projects/EmptyWebGL/Temp/StagingArea/Data/il2cppOutput”

stdout:
Building build.bc with EmscriptenToolChain
Output directory: D:\Unity Projects\WebGL-test projects\EmptyWebGL\Temp\StagingArea\Data\Native
Cache directory: D:\Unity Projects\WebGL-test projects\EmptyWebGL\Library\il2cpp_cache
il2cpp.exe didn’t catch exception: Unity.IL2CPP.Building.BuilderFailedException: ??? ??? ??? ??? ??? ??? ???.
ERROR:root:Failed to run llvm optimizations:

Invocation was: Executable: “C:\Unity Editors\2019.4.8f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\python.exe”
Arguments: -E “C:\Unity Editors\2019.4.8f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\em++” -Wno-unused-value -Wno-invalid-offsetof -nostdinc -fno-strict-overflow -Wno-null-conversion -std=c++11 -O3 -Oz -DIL2CPP_EXCEPTION_DISABLED=1 -DNET_4_0 -DUNITY_AOT -DIL2CPP_MONO_DEBUGGER_DISABLED -DGC_NOT_DLL -DRUNTIME_IL2CPP -DNDEBUG -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\libil2cpp" -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\libil2cpp" -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\external\bdwgc\include" -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\external\xxHash" -I"D:\Unity Projects\WebGL-test projects\EmptyWebGL\Temp\StagingArea\Data\il2cppOutput" “D:\Unity Projects\WebGL-test projects\EmptyWebGL\Temp\StagingArea\Data\il2cppOutput\Il2CppCompilerCalculateTypeValues.cpp” -o “D:\Unity Projects\WebGL-test projects\EmptyWebGL\Library\il2cpp_cache\4FF51B1B2A78B5ACCBA43C77F441BA4A.o”

��ġ: Unity.IL2CPP.Building.CppProgramBuilder.BuildAllCppFiles(IEnumerable1 sourceFilesToCompile, IBuildStatisticsCollector statisticsCollector) ��ġ: Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics) ��ġ: il2cpp.Program.DoRun(String[ ] args, List1 foundAssemblies)
��ġ: il2cpp.Program.Run(String[ ] args, Boolean setInvariantCulture)
��ġ: il2cpp.Program.Main(String[ ] args)
stderr:

���� ���� ����: Unity.IL2CPP.Building.BuilderFailedException: ??? ??? ??? ??? ??? ??? ???.
ERROR:root:Failed to run llvm optimizations:

Invocation was: Executable: “C:\Unity Editors\2019.4.8f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\python.exe”
Arguments: -E “C:\Unity Editors\2019.4.8f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\em++” -Wno-unused-value -Wno-invalid-offsetof -nostdinc -fno-strict-overflow -Wno-null-conversion -std=c++11 -O3 -Oz -DIL2CPP_EXCEPTION_DISABLED=1 -DNET_4_0 -DUNITY_AOT -DIL2CPP_MONO_DEBUGGER_DISABLED -DGC_NOT_DLL -DRUNTIME_IL2CPP -DNDEBUG -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\libil2cpp" -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\libil2cpp" -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\external\bdwgc\include" -I"C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp\external\xxHash" -I"D:\Unity Projects\WebGL-test projects\EmptyWebGL\Temp\StagingArea\Data\il2cppOutput" “D:\Unity Projects\WebGL-test projects\EmptyWebGL\Temp\StagingArea\Data\il2cppOutput\Il2CppCompilerCalculateTypeValues.cpp” -o “D:\Unity Projects\WebGL-test projects\EmptyWebGL\Library\il2cpp_cache\4FF51B1B2A78B5ACCBA43C77F441BA4A.o”

��ġ: Unity.IL2CPP.Building.CppProgramBuilder.BuildAllCppFiles(IEnumerable1 sourceFilesToCompile, IBuildStatisticsCollector statisticsCollector) ��ġ: Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics) ��ġ: il2cpp.Program.DoRun(String[ ] args, List1 foundAssemblies)
��ġ: il2cpp.Program.Run(String[ ] args, Boolean setInvariantCulture)
��ġ: il2cpp.Program.Main(String[ ] args)

UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase)
UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action1) UnityEditorInternal.IL2CPPBuilder:RunIl2CppWithArguments(List1, Action1, String) UnityEditorInternal.IL2CPPBuilder:ConvertPlayerDlltoCpp(Il2CppBuildPipelineData, String, String, Boolean) UnityEditorInternal.IL2CPPBuilder:Run() UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, IIl2CppPlatformProvider, Action1, RuntimeClassRegistry)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

Error 2

Exception: C:\Unity Editors\2019.4.8f1\Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe did not run properly!
UnityEditorInternal.Runner.RunProgram (UnityEditor.Utils.Program p, System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser) (at :0)
UnityEditorInternal.Runner.RunManagedProgram (System.String exe, System.String args, System.String workingDirectory, UnityEditor.Scripting.Compilers.CompilerOutputParserBase parser, System.Action1[T] setupStartInfo) (at <d7545a46516941d4b2f2dec578cd41ee>:0) UnityEditorInternal.IL2CPPBuilder.RunIl2CppWithArguments (System.Collections.Generic.List1[T] arguments, System.Action1[T] setupStartInfo, System.String workingDirectory) (at <d7545a46516941d4b2f2dec578cd41ee>:0) UnityEditorInternal.IL2CPPBuilder.ConvertPlayerDlltoCpp (UnityEditor.Il2Cpp.Il2CppBuildPipelineData data, System.String outputDirectory, System.String workingDirectory, System.Boolean platformSupportsManagedDebugging) (at <d7545a46516941d4b2f2dec578cd41ee>:0) UnityEditorInternal.IL2CPPBuilder.Run () (at <d7545a46516941d4b2f2dec578cd41ee>:0) UnityEditorInternal.IL2CPPUtils.RunIl2Cpp (System.String stagingAreaData, UnityEditorInternal.IIl2CppPlatformProvider platformProvider, System.Action1[T] modifyOutputBeforeCompile, UnityEditor.RuntimeClassRegistry runtimeClassRegistry) (at :0)
UnityEditor.WebGL.WebGlBuildPostprocessor.CompileBuild (UnityEditor.Modules.BuildPostProcessArgs args) (at /Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:387)
UnityEditor.WebGL.WebGlBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at /Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:932)
UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at :0)
UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at :0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

That’s an emscripten error, “failed to run llvm optimizations”, which is called from il2cpp to compile the code to web assembly. I’m not sure what would cause it to fail, maybe something in the system environment variables or path is conflicting. That error would normally come up if the code was compiled with different conflicting versions of emscripten. I have not come across this error myself. I’ll look into what might be causing it.