Think Essentially

計算機テクノロジー全般が好きです

Hello, Rust

Hello, Rust

$ 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

test

test

test