Public Theta Blog

RustでCargoの仮想ワークスペース(virtual workspaces)使用時にのみ依存パッケージのコンパイルに失敗する

RustでゲームエンジンのBevyを使ってパッケージとして書いていたものをワークスペースに移行してビルドしてみると、なぜか突然依存パッケージのコンパイルに失敗するようになった。

調べてみると仮想ワークスペースではパッケージのようにエディションを指定しないので、依存関係の解決アルゴリズムに古いバージョンのものがデフォルトで使われてしまうことが原因のようで、resolver = "2"を指定すると解決した。

[workspace]
members = ["crates/*"]
resolver = "2"

なお解決したあとで検索してみるとBevyの非公式チートブックにもよくある落とし穴としてしっかり記載されていた。