【Rustツアー】プログラミングRust 第2章 - rustupとCargo
はじめに
本記事はプログラミングRust 第2版を読んで要点をもとに、情報を補完し、まとめた記事です。出典は本記事の最後に記載しています。
詳しく知りたい方は、書籍を購入して読むことをおすすめします。
rustupとCargo
rustup
rustupはインストーラであり、Rust公式が推奨しているRustのインストール方法です。
rustは6週間ごとにラピッドリリースプロセスがありますが、以下のコマンドを実行することでRustを新しいバージョンに更新できます。
$ rustup update
また、Rustのすべてのツール(rustc
、cargo
、rustup
など)は~/.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
には以下のようなコードが生成されています。
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の管理から外れるため自分で記載する必要はありません。
/target
以下のコマンドでtarget
をクリア(削除)することもできます。
$ cargo clean
出典
プログラミングRust 第2版
Jim Blandy、Jason Orendorff、Leonora F. S. Tindall 著、中田 秀基 訳
原書: Programming Rust, 2nd Edition
O'Reilly
Discussion