Open10

UnrealEngineではまったもの

Mitsuhiro KogaMitsuhiro Koga

UE5.0.0をVS2022でビルドした時のエラー

出力

4>------ ビルド開始: プロジェクト: UE5, 構成: Development_Editor x64 ------
4>Using bundled DotNet SDK
4>Log file: G:\UnrealEngine\Engine\Programs\UnrealBuildTool\Log.txt
4>Using 'git status' to determine working set for adaptive non-unity build (G:\UnrealEngine).
4>Creating makefile for UnrealEditor (UnrealBuildTool assembly is newer)
4>Creating makefile for ShaderCompileWorker (UnrealBuildTool assembly is newer)
4>Building UnrealEditor and ShaderCompileWorker...
4>Using Visual Studio 2019 14.29.30143 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133) and Windows 10.0.18362.0 SDK (C:\Program Files (x86)\Windows Kits\10).
4>Determining max actions to execute in parallel (4 physical cores, 8 logical cores)
4>  Executing up to 4 processes, one per physical core
4>Building 11 actions with 4 processes...
4>[1/11] Touch msado15.tlh
4>[1/11]Touch msado15.tlh - Error but no output
4>[1/11]Touch msado15.tlh - 1 G:\UnrealEngine\Engine\Source C:\WINDOWS\system32\cmd.exe /C "copy /b "G:\UnrealEngine\Engine\Plugins\Runtime\Database\ADOSupport\Intermediate\Build\Win64\UnrealEditor\Development\ADOSupport\msado15.tlh"+,, "G:\UnrealEngine\Engine\Plugins\Runtime\Database\ADOSupport\Intermediate\Build\Win64\UnrealEditor\Development\ADOSupport\msado15.tlh" 1>nul:"
4>[2/11] GenerateTLH dte80a.cpp
4>[3/11] Touch dte80a.tlh
4>[4/11] Compile Module.VisualStudioSourceCodeAccess.cpp
4>[5/11] Link UnrealEditor-VisualStudioSourceCodeAccess.lib
4>   ライブラリ ..\Plugins\Developer\VisualStudioSourceCodeAccess\Intermediate\Build\Win64\UnrealEditor\Development\VisualStudioSourceCodeAccess\UnrealEditor-VisualStudioSourceCodeAccess.lib とオブジェクト ..\Plugins\Developer\VisualStudioSourceCodeAccess\Intermediate\Build\Win64\UnrealEditor\Development\VisualStudioSourceCodeAccess\UnrealEditor-VisualStudioSourceCodeAccess.exp を作成中
4>[6/11] Link UnrealEditor-VisualStudioSourceCodeAccess.dll
4>   ライブラリ ..\Plugins\Developer\VisualStudioSourceCodeAccess\Intermediate\Build\Win64\UnrealEditor\Development\VisualStudioSourceCodeAccess\UnrealEditor-VisualStudioSourceCodeAccess.suppressed.lib とオブジェクト ..\Plugins\Developer\VisualStudioSourceCodeAccess\Intermediate\Build\Win64\UnrealEditor\Development\VisualStudioSourceCodeAccess\UnrealEditor-VisualStudioSourceCodeAccess.suppressed.exp を作成中
4>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets(44,5): error MSB3073: コマンド "..\..\Build\BatchFiles\Build.bat -Target="UnrealEditor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" はコード 6 で終了しました。
4>プロジェクト "UE5.vcxproj" のビルドが終了しました -- 失敗。

エラー

重大度レベル	コード	説明	プロジェクト	ファイル	行	抑制状態
エラー	MSB3073	コマンド "..\..\Build\BatchFiles\Build.bat -Target="UnrealEditor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" はコード 6 で終了しました。	UE5	C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets	44	

リビルドするとエラーが起きるっぽい。
copyで失敗してるフォルダをその都度削除してリビルドが通るっぽい。
自分の場合は以下の2箇所でこのエラーが起きた。

  • Engine\Intermediate\Build\Win64\UnrealEditor\Development\VisualStudioDTE
  • Engine\Plugins\Runtime\Database\ADOSupport\Intermediate\Build\Win64\UnrealEditor\Development\ADOSupport
Mitsuhiro KogaMitsuhiro Koga

UE4/5のGenerateProjectFiles.batでVisualStudioのバージョンを指定する

UE4

以下のいずれかを指定できる

  • -2015
  • -2017
  • -2019
  • -2022
./GenerateProjectFiles.bat -2015
./GenerateProjectFiles.bat -2017
./GenerateProjectFiles.bat -2019
./GenerateProjectFiles.bat -2022

https://github.com/EpicGames/UnrealEngine/blob/4.27/Engine/Source/Programs/UnrealBuildTool/ProjectFiles/VisualStudio/VCProjectFileGenerator.cs#L131-L146

UE5

以下のいずれかを指定できる

  • -2019
  • -2022
./GenerateProjectFiles.bat -2019
./GenerateProjectFiles.bat -2022

https://github.com/EpicGames/UnrealEngine/blob/5.0/Engine/Source/Programs/UnrealBuildTool/ProjectFiles/VisualStudio/VCProjectFileGenerator.cs#L121-L128

Mitsuhiro KogaMitsuhiro Koga

NoDefaultCurrentDirectoryInExePathは使えない

Windowsで環境変数 NoDefaultCurrentDirectoryInExePath=1 を設定するとコマンド実行時の検索パスからカレントディレクトリを除外してLinuxやMacみたいな挙動になるがRunUAT.batの中でAutomationTool.exeの実行に失敗してしまうためパッケージングできなくなってしまう。