いつものようにUE4をビルドしていると、UnrealBuildTool(UBT)が動作しているときに、ビルドが中断してしまう事態が発生した。 ログを見ると、"System.ComponentModel.Win32Exception"という例外によって止まっているようだが、Win32Exceptionって具体的に何やねん!、というツッコミをいれつつ、頭を抱えた(詳細なログは最後に)。
原因はアンチウイルスソフト
開き直ってググってみると、どうもアンチウイルスソフトが影響しているらしい(私はカスペルスキーを利用)。ということで、一時的に無効にすると、すんなりとビルドが通った。
以前はこんな事はなかったのだがな。UBTの仕様変更か、カスペルスキーの問題か。どちらが悪いかは分からないので、とりあえずアンチウイルスを一時的に停止してみると、すんなりとビルドが通った。この問題のためだけにアンチウイルスソフトを変更するつもりもないので、当面は一時停止でしのぐつもり。
ちなみにこの問題は、UE4のビルドに限らずUBTを利用しているシーン全般で発生する可能性があるので。ビルドが異常終了した際、以下のログのように「UBTが動作してるときに止まっているなー」と思ったら、アンチウイルスソフトを一時停止してから、再度ビルドしてみるのがよいかもしれない。
そのときのログ
Parsing headers for UE4Editor 4> Running UnrealHeaderTool UE4Editor "D:\ue4src\UnrealEngine\Engine\Intermediate\Build\Win64\UE4Editor\Development\UnrealHeaderTool.manifest" -LogCmds="loginit warning, logexit warning, logdatabase error" 4>EXEC : error : System.ComponentModel.Win32Exception (0x80004005): 4> System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 4> System.Diagnostics.Process.Start() 4> System.Diagnostics.Process.Start(ProcessStartInfo startInfo) 4> UnrealBuildTool.ExternalExecution.RunExternalExecutable(String ExePath, String Commandline) 蝣エ謇 d:\ue4src\UnrealEngine\Engine\Source\Programs\UnrealBuildTool\System\ExternalExecution.cs:陦・555 4> UnrealBuildTool.ExternalExecution.ExecuteHeaderToolIfNecessary(UEBuildTarget Target, CPPEnvironment GlobalCompileEnvironment, List`1 UObjectModules, String ModuleInfoFileName, ECompilationResult& UHTResult) 蝣エ謇 d:\ue4src\UnrealEngine\Engine\Source\Programs\UnrealBuildTool\System\ExternalExecution.cs:陦・698 4> UnrealBuildTool.UEBuildTarget.Build(IUEToolChain TargetToolChain, List`1& OutputItems, List`1& UObjectModules, String& EULAViolationWarning) 蝣エ謇 d:\ue4src\UnrealEngine\Engine\Source\Programs\UnrealBuildTool\Configuration\UEBuildTarget.cs:陦・1768 4> UnrealBuildTool.UnrealBuildTool.RunUBT(String[] Arguments) 蝣エ謇 d:\ue4src\UnrealEngine\Engine\Source\Programs\UnrealBuildTool\System\UnrealBuildTool.cs:陦・1769 4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "..\..\Build\BatchFiles\Build.bat UE4Editor Win64 Development" exited with code -1.