オプション | 説明 | 例 |
---|---|---|
— | 実行時にcargoではなくパッケージ(main)側にオプションを渡す。 | cargo run -- -d abcde123 |
-V, –version | バージョン情報の表示。 | cargo -V |
-v, -vv, –verbose | 詳細に出力する。 | cargo check -v |
-q, –quiet | stdoutに出力しない。余計な表示をしないようにする。 | cargo run -q |
-h, –help | オプション等の情報の表示。 cargo help [subcommand] でサブコマンドのオプションを表示する。 | cargo -h cargo help update |
bench | ベンチマークを実行する。[#bench]アトリビュートの付いたものが対象。 | cargo bench |
build | パッケージのコンパイル。 | cargo build |
check | パッケージの分析、文法チェック(コンパイルなし) | cargo check -v |
clean | targetディレクトリの削除。 | cargo clean --release |
clippy | cargo checkは文法寄りのチェックだけだが、もう少し賢いチェックを行ってくれる。詳しくはこちら。 | cargo clippy |
doc | ドキュメントの作成。 | cargo doc |
fetch | 依存関係のあるパッケージをネットワーク経由で取得する。 | cargo fetch |
fix | warningがあった場合、自動的に修正する(ソースコード変更あり)。詳しくはこちら。 | cargo fix |
fmt | ソースコードを整形する。 | cargo fmt |
generate-lockfile | Cargo.lockの生成。 | cargo generate-lockfile |
init | 新しいパッケージ(プロジェクト)の作成。デフォルトは–binオプション付き。 newサブコマンドの場合は、パッケージ名と同じディレクトリがあるとエラーになるがinitサブコマンドの場合は作成できる(ただしディレクトリにCargo.tomlがあると失敗する) | cargo init new_app_name |
install | バイナリクレートのインストール。デフォルトのインストール先は$HOME/.cargo/bin | cargo install ripgrep |
locate-project | JSON形式でCargo.tomlの場所を表示する。 | cargo locate-project |
login | crates.ioのトークンを保存する。保存先は$CARGO_HOME/credentials.toml パッケージをアップロードにする際に必要。詳しくはこちら。 | cargo login user_abcde123 |
metadata | パッケージの依存関係等のメタ情報をJSON形式で出力する。 | cargo metadata --format-version=1 |
miri | 内部のインタプリタ。nightlyな機能を試すときに使用する???。詳しくはこちら。あるいはこちら。 | cargo miri run |
new | 新しいパッケージ(プロジェクト)の作成。デフォルトは–binオプション付き。 | cargo new new_app_name --bin cargo new new_lib_name --lib |
owner | パッケージのオーナー情報の管理。パッケージをチームで作成している場合、アップロードできるようにするためのもの。詳しくはこちら。 | |
package | アップロードするためのパッケージファイルの作成。target/packageディレクトリに作成される。詳しくはこちら。 | cargo package cargo package --list |
pkgid | 使用しているパッケージのSPEC情報(URL形式ぽいもの)を表示する。使用していないパッケージを指定するとアンマッチでエラーとなる。詳しくはこちら。 | cargo pkgid anyhow |
publish | 作成したパッケージをcrates.ioにアップロードする。詳しくはこちら。 | cargo publish new_pkg_name |
read-manifest | Deprecated 代わりにcargo metadata –no-deps | |
run | パッケージ(プロジェクト)の実行。 | cargo run --release |
rustc | コンパイル時にオプションを渡したいときに使用する。rustcのオプション等はこちら。 | |
rustdoc | ドキュメント作成時にオプションを渡したいときに使用する。rustdocのオプション等はこちら。 | |
search | crates.ioのパッケージを検索する。 | cargo search keyword_abcde123 |
test | テストを実行する。[#test]アトリビュートの付いたものが対象。 | cargo test |
tree | 使用しているパッケージの依存関係をツリー表示する。 | cargo tree |
uninstall | バイナリクレートのアンインストール。 | cargo uninstall ripgrep |
update | Cargo.lockの依存関係の更新。 | cargo update -p pkg_name cargo update --dry-run |
vendor | vendorディレクトリを作成して依存関係のあるパッケージをそこに集約する。 | cargo vendor |
verify-project | Cargo.tomlのバリデーション | cargo verify-project |
version | cargoのバージョン情報の表示をする。 | cargo version |
yank | 作成したパッケージをcrates.ioから削除する。詳しくはこちら。 | cargo yank new_pkg_name |
cargo 1.45.0をベースに作成しています。すべて試したわけではないので間違っている部分があるかもしれません。
詳細、公式情報はcargo bookを参照ください。
その他関連ツール
コマンド | 説明 |
---|---|
rustup self update | rustup自身のアップデート |
rustup update stable | 最新の安定版へ更新 |
rustup toolchain list | インストール済みのツールチェインの一覧 |
rustc --version rustup show | バージョンの確認 |
rustup toolchain add [version] | 指定バージョンのインストール |
rustup default [version] | 指定バージョンのrustを使用するようにする。指定はツールチェインの一覧のバージョン情報を使用する。 プロジェクトフォルダーにrust-toolchain.toml あるいは rust-toolchainファイルを作成してバージョン情報を含ませるとプロジェクト内でバージョンを固定できる。詳しくはこちら。 |
cargo fixの動作
例えば下記のようなコードをcargo checkすると
fn main() {
let a = 1;
}
下記のようにwarningが出ます。修正しないでもコンパイルできますがcargo fixを実行すると自動でwarning内容に従ってコードを修正してくれます。
warning: unused variable: `a`
--> src/main.rs:2:9
|
2 | let a = 1;
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
= note: `#[warn(unused_variables)]` on by default
warning: 1 warning emitted
cargo fixを実行すると下記のように修正されます。
fn main() {
let _a = 1;
}
cargo clippyの動作
例えば下記のようなコードをcargo checkすると
fn main() {
let x = 3.14;
}
下記のようにwarningが出ます。
warning: unused variable: `x`
--> src/main.rs:2:9
|
2 | let x = 3.14;
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
= note: `#[warn(unused_variables)]` on by default
warning: 1 warning emitted
一方、cargo clippyを実行すると3.14を円周率と判断して下記のようなエラーを出してstd::f32::consts::PI等を使用するように促してくれます。cargo checkを既に実行しているとclippyのメッセージは出ないようです。
warning: unused variable: `x`
--> src/main.rs:2:9
|
2 | let x = 3.14;
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
= note: `#[warn(unused_variables)]` on by default
error: approximate value of `f{32, 64}::consts::PI` found. Consider using it directly
--> src/main.rs:2:13
|
2 | let x = 3.14;
| ^^^^
|
= note: `#[deny(clippy::approx_constant)]` on by default
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant
error: aborting due to previous error; 1 warning emitted