GodotのGDCubismをビルドしたらちょっとハマった話
GDCubismは、Godot EngineでLive2Dが再生できる9月ごろに公開されたてほやほやのGDExtensionアドオンです。
MizunagiKB / gd_cubism
スゴイ!ということでビルドに挑戦したはいいものの、なんやらうまくいかなかったので、解決までの顛末を記事にしてみます。
事象
・手順通りにやってもGDCubismのビルドが上手くいかない
・「std::is_base_of_v」を使ってるところでエラーが出る
→「error C2065: 'is_base_of_v': 定義されていない識別子です。」
・バージョンがおかしいっぽいWarningがちょいちょい出てる
→「cl : コマンド ライン warning D9002 : 不明なオプション '/std:c++17' を無視します」
環境確認
困ったときはとりあえず環境を確認してみる。
公式のビルド要件
・VisualStudio Community, version 2019 or lator.
・Python 3.6+
・SCons 3.0+ build system.
自環境を確認
・Visual Studio
→2022 Communityをインストール済み
・Python
→3.9.7
・SCons
→pipでsconsを新規インストールした
特に問題なさげ。
仮説1:最新のcl.exeにパスが通っていないのではないか?
すべてのドライブのcl.exeを調べたが、自環境内の最も新しいものにパスが通っている様子
仮説2:そもそもcl.exeが古いのでは?
Visual Studio 2022がインストールされているのに???
と思いつつ調べてみるとVisual Studio 2022のインストールフォルダ配下にcl.exeがない...!
さらに調べてみると
・Visual Studio 2017以降はVisual Studioをインストールしただけだとcl.exeはインストールされないらしい?
・複数のVisual Studioをインストールしようとした場合、cl.exeがすでにあると更新されないらしい?
みたいなエントリーがあった(Google調べ、未検証)
原因
cl.exeが古い!
解決策
というわけで、C++を明示的にインストールしてみます。
・Visual Studio 2022を起動
・「コードなしで続行」
・メニューの「ツール」→「ツールと機能を取得」
・「ワークロード」→「デスクトップとモバイル」
・「C++によるデスクトップ開発」にチェック
・「変更」ボタン
・インストールが終わるまで待つ
結果
C++のインストール完了後に再トライしたら無事にビルド成功!
おめでとう俺!
おわり
公式のビルド要件は厳密には
「Visual Studio CommunityのVersion 2019以降に付随するcl.exeがインストールされてること」
ということらしいです。
複数のVisual Studioがインストールされてる かつ Godot EngineでGDCubismしたい人はお気を付けて。