Hello, Rust
- rustcでコンパイルする.→ C でいう gcc
- Rustは,AOTコンパイル言語 - ahead of time compile language
$ rustc main.rs // main.rsをコンパイル
Hello, Cargo
- Cargoは、Rustのビルドシステム兼、パッケージマネージャ
バージョン確認
$ cargo --version
プロジェクトの作成
$ cargo new <project> --bin
- --bin引数が、バイナリを作成
- このコマンドによって作られるもの:src(main.rsが入っている),.gitignore, Cargo.toml
build
$ cargo build
- このコマンドによって,targetディレクトリとCargo.lockファイルが生成される
- Cargo.lockがプロジェクトの依存のバージョンを追う
- Cargo.lockは基本的にいじらない
- target/debug/ に,exeファイルが生成される
リリースビルド
cargo build --release
- 最適化を行いつつ,コンパイルしてtarget/releaseに実行可能ファイルを作成する
- Rustの実行速度を上げてくれるけど,コンパイル時間が延びる.
- 本番向けに使う.Android のビルドシステムと似てる
- 実行時間をベンチマークする際は,releaseで行う
run
$ cargo run
- ビルドと,exeファイルの実行を同時に行う
- ファイルの変更区分がないときは,コンパイルを行わず,exeファイルの実行だけ行う (buildコマンドも同様.かしこい)
check
$ cargo check
- コンパイルできることを確かめて,実行ファイルは作成しない
- コードを書いていて,単純にこの表現は通るのか?みたいな確認の際に使う.
- build使って,いちいち使わない実行ファイルを作成していたら手間がかかるため
TOMLファイル
- Cargoの設定フォーマット.たしかに,名前の通り最小限の情報で分かりやすい
- 以下は中身. author のフォーマットは,["名前 <eメールアドレス>"]
- パッケージのコードはクレートとして参照される
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["Hoge <hoge@gmail.com>"]
edition = "2018"
[dependencies]
勉強に使った教材
doc.rust-jp.rs
doc.rust-jp.rs