🌟

【Rustツアー】プログラミングRust 第2章 - rustupとCargo

2024/03/19に公開

はじめに

本記事はプログラミングRust 第2版を読んで要点をもとに、情報を補完し、まとめた記事です。出典は本記事の最後に記載しています。
詳しく知りたい方は、書籍を購入して読むことをおすすめします。

rustupとCargo

rustup

rustupはインストーラであり、Rust公式が推奨しているRustのインストール方法です。
https://www.rust-lang.org/ja/tools/install

rustは6週間ごとにラピッドリリースプロセスがありますが、以下のコマンドを実行することでRustを新しいバージョンに更新できます。

$ rustup update

また、Rustのすべてのツール(rustccargorustupなど)は~/.cargo/binに配置されます。

~/.cargo/bin
├── cargo
├── cargo-clippy
├── cargo-fmt
├── cargo-miri
├── clippy-driver
├── rls
├── rust-analyzer
├── rust-gdb
├── rust-gdbgui
├── rust-lldb
├── rustc
├── rustdoc
├── rustfmt
└── rustup

Cargo

Cargoはコンパイルマネージャであり、パッケージマネージャです。Rustを使った開発ではCargoは必要不可欠です。rustupを使用してRustをインストールすると、Cargoもインストールされます。

Cargoのバージョンを確認するには以下のコマンドを実行します。

$ cargo --version
cargo 1.76.0 (c84b36747 2024-01-18)

新しいプロジェクト(パッケージ)を作成する場合は以下のコマンドを実行します。

$ cargo new <新しいパッケージ名>
     Created binary (application) `<新しいパッケージ名>` package

以下の2つのファイルが生成されます。(その他.gitignore.gitも生成されます)

.
├── Cargo.toml
└── src
    └── main.rs

main.rsには以下のようなコードが生成されています。

main.rs
fn main() {
    println!("Hello, world!");
}

cargo runでこのコードを実行します。

$ cargo run
   Compiling hello v0.1.0 (/Users/totsuka/tmp/hello)
    Finished dev [unoptimized + debuginfo] target(s) in 0.66s
     Running `target/debug/hello`
Hello, world!

ビルドされて、Hello, world!が表示されました。

rustc

rustcはRustのコンパイラです。基本的にはCargoからrustcを起動しますが、直接実行するにはrustcを使います。先ほどのmain.rsをrustcでコンパイル、実行してみます。

main.rsと同じ階層に移動し、以下のコマンドを実行します。

$ rustc main.rs
$ ./main
Hello, world!

targetディレクトリ

Cargoはコンパイルで生成したファイルをパッケージのトップのtargetディレクトリに配置します。

cargo newでパッケージを生成した場合は、自動的にgitの管理から外れるため自分で記載する必要はありません。

.gitignore
/target

以下のコマンドでtargetをクリア(削除)することもできます。

$ cargo clean

出典

プログラミングRust 第2版
Jim Blandy、Jason Orendorff、Leonora F. S. Tindall 著、中田 秀基 訳
原書: Programming Rust, 2nd Edition
O'Reilly
https://www.oreilly.co.jp/books/9784873119786/

Discussion