RUSTでプログラミングするときはCargoというビルドシステム兼パッケージマネージャーを使うとのこと。
新規プロジェクト作成
cargoを使ってプロジェクトを作成する。
$ cargo new hello_cargo
Cargo.toml
作成されたディレクトリに行くと、Cargo.tomlが作成されている。Cargoの設定ファイルで、TOML (Tom’s Obvious, Minimal Language)フォーマットで書かれている。
[package]
name = "hello_cargo"
version = "0.1.0"
authors = ["ky"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
最初の行の[package]はセクションヘッダーで、それ以降の文がパッケージを設定することを示します。 このファイルに情報を追加してく中で、他のセクションも追加していくことになります。
次の3行はCargoがプログラムをコンパイルするのに必要となる設定情報を指定します。 ここでは、名前、バージョン、使用するRustのエディションを指定しています。 editionキーについては付録Eで説明されています。
最後の行の[dependencies]は、プロジェクトの依存を列挙するためのセクションの始まりです。 Rustではコードのパッケージのことをクレートと呼びます。 このプロジェクトでは他のクレートは必要ありませんが、第2章の最初のプロジェクトでは必要になるので、そのときにこの依存セクションを使用します。
https://doc.rust-jp.rs/book-ja/ch01-03-hello-cargo.html
src/main.rs
Cargoは自動的に“Hello, world!”を作ってくれている。
fn main() {
println!("Hello, world!");
}
ビルドと実行
ビルドは以下のコマンド
$ cargo build
実行ファイルが、target/debug/hello_cargoに作成されている。
cargo runを使うと、ビルドと実行を同時にしてくれる。
$ cargo run
cargo checkというコマンドで、コンパイル可能かどうかをチェックできる。実行ファイルは作らない。
$ cargo check
なぜ実行可能ファイルが欲しくないのでしょうか?
https://doc.rust-jp.rs/book-ja/ch01-03-hello-cargo.htmlcargo checkは実行ファイルを生成するステップを省くことができるので、多くの場合、cargo buildよりもずっと高速です。 もし、あなたがコードを書きながら継続的にチェックするのなら、cargo checkを使えば、そのプロセスを高速化できます! そのため多くのRustaceanはプログラムを書きながら定期的にcargo checkを実行し、コンパイルできるか確かめます。 そして、実行ファイルを使う準備ができたときにcargo buildを走らせるのです。
リリース用ビルド
リリース用にビルドするときは、cargo build --releaseを使う。
$ cargo build --release
実行ファイルはtarget/releaseに作成される。