UE5 ソースからビルドした Engine を Git で共有する
「Installed Build を作成する」をテスト中。
ここのページにあるように windows 10 環境では Windows 10 SDK をインストールしないと PDBCopy.exe が使用できなくてエラーが発生する。
RunUAT.bat をコマンドラインではなくバッチファイルから実行すると上記でエラーが出ても確認できないままウィンドウが静かに閉じて気づけないので注意。
Installed Build の作成だけ上手くいかない。
UE5.sln を開いて VisualStudio でビルドしたエンジンは正常に動作するのに、RunUAT をやると何故かエラーが出る。
公式にあるとおりの RunUAT コマンドを実行
RunUAT.bat BuildGraph -script=Engine/Build/InstalledEngineBuild.xml -target="Make Installed Build Win64" -nosign -set:GameConfigurations=Development;Shipping -set:WithWin64=true -set:WithAndroid=false -set:WithDDC=false -set:WithLinux=false -set:WithLinuxArm64=false -set:WithIOS=false -set:WithTVOS=false -set:WithMac=false -clean
3 時間程度かかってエラーで終了。
コンソールにログファイルのパスが載っていたので開いてみると
CompilationResultException: OtherCompilationError
というエラーが書かれていた。
公式のページに
「その他のコンパイル エラー」メッセージを受信した場合、Linux ではこのコマンドに既知の問題があるため、-clean パラメータを削除して再試行します。
という記載があったが Linux ではないので関係ないかと思いつつも -clean を削除して再実行。
今度は時間がかからずに終了したがやっぱりエラー。
[1/390] Compile [x64] Module.AudioSynesthesiaCore.cpp
D:\Project\UnrealEngine\Engine\Plugins\Runtime\AudioSynesthesia\Source\AudioSynesthesiaCore\Private\PeakPicker.cpp(17) : error C4756: 定数演算でオーバーフローを起こしました。
while compiling Audio::FPeakPicker::FPeakPicker
[2/390] Compile [x64] Module.LiveLink.cpp
D:\Project\UnrealEngine\Engine\Plugins\Animation\LiveLink\Source\LiveLink\Private\LiveLinkClient.cpp(1728) : error C4756: 定数演算でオーバーフローを起こしました。
while compiling FLiveLinkClient_Base_DEPRECATED::PushSubjectData
[3/390] Compile [x64] Module.PoseSearch.3.cpp
D:\Project\UnrealEngine\Engine\Plugins\Animation\PoseSearch\Source\Runtime\Private\PoseSearchLibrary.cpp(134) : error C4756: 定数演算でオーバーフローを起こしました。
while compiling FMotionMatchingState::Reset
[4/390] Compile [x64] Module.RenderCore.2.cpp
D:\Project\UnrealEngine\Engine\Source\Runtime\RenderCore\Private\RenderGraphPrivate.cpp(189) : error C4756: 定数演算でオーバーフローを起こしました。
while compiling GetClobberValue
これらのエラーは初回でも発生していた。
該当のソースを見ると
Settings.MeanDelta = FMath::Clamp(Settings.MeanDelta, 1e-6f, INFINITY);
と確かに C4756 が出そうな感じのコードにはなっている。
でもこのコードの変更履歴は 5 年前から変わってないようなので最近 UE 5.4.2 で突然発生したエラーではなさそう。
ちょっとした凡ミスがあった。
クローンしたUEソースが 5.4.2-release のタグのものかと思っていたけど、実は 5.4 ブランチのものだった。
つまり 5.4.3 の開発中ソースをビルドしていた模様。
反省。
後日 5.4.2-release でやり直す予定。
5.4.2-release でやり直してみたが結果は変わらず。
調べると フォーラム で同じ症状の人を発見。
windows SDK のバージョン問題の模様。
Windows SDK を全てアンインストールし、Windows SDK for Windows 11 (10.0.22621.2428)
をインストールするとビルドに成功した。
記事にしたのでクローズ。