S-JIS[2024-09-16/2025-03-15] 変更履歴

Cargoメモ

RustのCargoのメモ。


概要

Cargoは、Rustのビルドシステム兼パッケージマネージャー。
JavaGradleScalaのsbtのようなもの )

Rustアプリケーションを開発する為のプロジェクトの雛形を作ったり、ビルド(コンパイル)して実行ファイルを生成したりすることが出来る。


cargoコマンドで実行する。

> cargo --version
cargo 1.81.0 (2dbb1af80 2024-08-20)

cargo new以外のコマンドは、プロジェクトディレクトリー直下で実行する。


cargo new

cargo newで新しいプロジェクトを作成する。

cargo new プロジェクト名

Rustのプロジェクトは主にバイナリークレート用(アプリケーション・実行ファイル作成用)とライブラリークレート用の2種類があるが、デフォルトではバイナリークレート用のプロジェクトとなる。

バイナリークレートを明示したい場合は「--bin」を付ける。

cargo new --bin プロジェクト名

プロジェクトのディレクトリーが作られ、その下に設定ファイルであるCargo.tomlと(バイナリークレートの場合は)src/main.rsが作られる。
さらにGitの.gitディレクトリーと.gitignoreまで作られる。


ライブラリークレートを作りたい場合は「--lib」を付ける。

cargo new --lib プロジェクト名

Windowsの例

> 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

cargo add

プロジェクトに依存ライブラリー(クレート)を追加する。[2025-03-15]

cargo add クレート名

このコマンドを実行すると、指定したクレートの最新バージョンを(crates.ioから)見つけ、Cargo.tomlのdependenciesに追加してくれる。


cargo build

プロジェクトをビルドする。

cargo build

バイナリークレートの場合、「プロジェクト名/target/debug/」の下に「プロジェクト名.exe」(Windowsの場合)という実行ファイルが作られる。


リリース用のビルドでは--releaseを付ける。(リリースプロファイルが使われる)

cargo build --release

バイナリークレートの場合、「プロジェクト名/target/release/」の下に「プロジェクト名.exe」(Windowsの場合)という実行ファイルが作られる。


Windowsの例

> cd rust-example1
> cargo build
> target\debug\rust-example1.exe

cargo test

プロジェクト内のテストコードを実行する。[2024-09-28]

cargo test 〔オプション〕〔テスト名〕〔-- 引数…〕

テストの実行方法


cargo run

プロジェクトを(ビルドして)実行する。

cargo run
cargo run --release

cargo run --bin

通常はsrc/main.rsにあるmain関数が実行されるが、src/binの下に置いたrsファイルは個別に実行することが出来る。[2024-11-24]

src/bin/example1.rs:

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」でそれが実行される。

Cargo.toml:

[package]
name = "my_project"
version = "0.1.0"
edition = "2021"

default-run = "my_project"

default-runにパッケージ名([package]のnameと同じもの)を指定すると、「cargo run」でsrc/main.rsが実行される。


Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま