VscodeでBevyの動的リンクを使ったプロジェクトの作成
Bevyコンパイルの高速化
リンカには既存ものより高速なruat-lldを使用.
Dynamic_linking(動的にリンク)を使用.
本記事での対象環境
OS:Windows11
Editor:Visualstudio Code
Bevy:0.13.2
Debugger:CodeLLDB
ターミナルでの作業
rust-lldの導入
rustのリンカをより高速な物へと変えます.Linux macOSではより高速なmoldがありますが,Windows版はまだ未実装な為rust-lldを使用.
LLVMのツールを自動的に使用するためのユーティリティをインストール
cargo install -f cargo-binutils
rust-lldをインストール
rustup component add llvm-tools
ワークスペース内での作業
プロジェクトの設定
Rustでプロジェクトの作成をした際のディレクトリ.
.
├── src
│ └── main.rs
└── Cargo.toml
bevyでdynamic_linkingを有効にし,その他の最適化オプションを設定します。
以下をCargo.tomlに設定.
[package]
name = "bevy_project"//任意のプロジェクト名
version = "0.0.0"
edition = "2021"
[dependencies]
bevy = { version = "*", features = ["dynamic_linking"] }
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 3
そして、リンカをrust-lldと指定するために、srcやcargoと同じディレクトリに".cargo"というディレクトリを作成し、その中に"config.toml"といファイルを追加。
.
├── .cargo
│ └── config.toml
├── src
│ └── main.rs
└── Cargo.toml
config.tomlの設定
使用するリンカとそのオプションを設定
"config.toml"の内容
[target.x86_64-pc-windows-msvc]
linker = "rust-lld.exe"
launch.jsonの設定
vscodeではCodeLLDBの拡張機能があり,それを導入すればデフォルト設定で[F5]キーでデバッグの実行が行える.デバッグの構成を作成すると".vscode"というディレクトリとその内部にlaunch.jsonが生成される.それらを以下のものへと変更する.
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"cargo": {
"args": [
"build",
"--bin=${workspaceFolderBasename}",
"--package=${workspaceFolderBasename}",
"--features=bevy/dynamic_linking"
],
"filter": {
"name": "bevy_project",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}",
"env": {
"BEVY_ASSET_ROOT": "${workspaceFolder}",
"PATH": "${env:USERPROFILE}/.rustup/toolchains/stable-x86_64-pc-windows-msvc/bin;${workspaceFolder}/target/debug/deps;${env:PATH}",
},
}
]
}
最後に
Bevyの公式ブックでも手順は書いていますが,内容が散らばっているためわかりにくいという声が多かったため記事を書いてみました.上記の方法でもできなかった方は気軽にご連絡ください.
また,これからもBevyによる初心者講座記事をちらちら上げていきたいと思います.
もし上記のやり方でうまくいかない場合以下に僕の作成したBevyの初期テンプレートを作成していますので以下を参照してみてください.
Discussion