RustのCargoのメモ。
Cargoは、Rustのビルドシステム兼パッケージマネージャー。
(JavaのGradleやScalaのsbtのようなもの
)
Rustアプリケーションを開発する為のプロジェクトの雛形を作ったり、ビルド(コンパイル)して実行ファイルを生成したりすることが出来る。
cargoコマンドで実行する。
> cargo --version cargo 1.81.0 (2dbb1af80 2024-08-20)
cargo new以外のコマンドは、プロジェクトディレクトリー直下で実行する。
cargo newで新しいプロジェクトを作成する。
cargo new プロジェクト名
Rustのプロジェクトは主にバイナリークレート用(アプリケーション・実行ファイル作成用)とライブラリークレート用の2種類があるが、デフォルトではバイナリークレート用のプロジェクトとなる。
バイナリークレートを明示したい場合は「--bin」を付ける。
cargo new --bin プロジェクト名
プロジェクトのディレクトリーが作られ、その下に設定ファイルであるCargo.tomlと(バイナリークレートの場合は)src/main.rsが作られる。
さらにGitの.gitディレクトリーと.gitignoreまで作られる。
ライブラリークレートを作りたい場合は「--lib」を付ける。
cargo new --lib プロジェクト名
> cargo new example1 Creating binary (application) `example1` package note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html > tree /f example1 D:\EXAMPLE\RUST\EXAMPLE1 │ .gitignore │ Cargo.toml │ └─src main.rs
プロジェクトに依存ライブラリー(クレート)を追加する。[2025-03-15]
cargo add クレート名
このコマンドを実行すると、指定したクレートの最新バージョンを(crates.ioから)見つけ、Cargo.tomlのdependenciesに追加してくれる。
プロジェクトをビルドする。
cargo build
バイナリークレートの場合、「プロジェクト名/target/debug/」の下に「プロジェクト名.exe」(Windowsの場合)という実行ファイルが作られる。
リリース用のビルドでは--releaseを付ける。(リリースプロファイルが使われる)
cargo build --release
バイナリークレートの場合、「プロジェクト名/target/release/」の下に「プロジェクト名.exe」(Windowsの場合)という実行ファイルが作られる。
> cd rust-example1 > cargo build > target\debug\rust-example1.exe
プロジェクト内のテストコードを実行する。[2024-09-28]
cargo test 〔オプション〕〔テスト名〕〔-- 引数…〕
プロジェクトを(ビルドして)実行する。
cargo run cargo run --release
通常はsrc/main.rsにあるmain関数が実行されるが、src/binの下に置いたrsファイルは個別に実行することが出来る。[2024-11-24]
fn main() { println!("example"); }
cargo run --bin example1 cargo run --release --bin example1
src/binにあるファイルも含めて複数の実行ソースファイルがある場合、デフォルトの「cargo run」では実行対象が決定できなくてエラーになる。[2025-02-12]
Cargo.tomlにdefault-runを指定すれば、--bin無しの「cargo run」でそれが実行される。
[package] name = "my_project" version = "0.1.0" edition = "2021" default-run = "my_project"
default-runにパッケージ名([package]のnameと同じもの)を指定すると、「cargo run」でsrc/main.rsが実行される。