この記事は、2023年6月に作成したものです。
はじめに
以前から興味があったRustを、日本語のドキュメントをもとに、学習を始めました!
自分の考えをまとめるために、記事を書いていこうと思います。
今回は、日本語ドキュメント1.3についてまとめていきます!
この記事でできること
RustのCargoを用いて、コンソールにHello, Cargo!と表示します。
環境
-
- macOS Monterey == 12.5
-
- Docker == 23.0.5
-
- Rust == 1.70.0
- Cargo == 1.70.0
Cargoとは?
Rustに触れたことのない方は、Cargoという言葉を聞くことがそもそもないでしょう。
Cargoとは、Rustのビルドシステム兼パケージマネージャーです。
Cargoを使用することで、プログラムで必要とするライブラリのインストールや管理、コードのビルドを簡単に行えます。
Pythonをある程度書いたことがある方は、わかるかもしれませんが、ライブラリが必要になるとpip install ~を頻繁に使用していました。
しかしRustでは、Cargoを用いることで、わざわざPythonのようにコマンドを叩くことなく、ライブラリをインストールし管理してくれます。(最近では、ryeというパッケージ管理ツールによってPythonでもこのような管理を行うことができます。)
要するに超便利な何でも屋って感じです!
Cargoの確認
以前の記事を参考に環境を作った方は、Cargoがデフォルトでインストールされていると思いますが、念の為確認したい方やその他の方法でRustの環境を作った方は、以下のコマンドを実行してみてください。
$ cargo --version
ここで、cargo 1.~~とバージョンを表す数値が表示されたら、Cargoがしっかりとインストールされている証拠です!
command not foundなどのメッセージが表示された場合は、うまくCargoがインストールされていないので、Cargoの個別インストールを行なってください。
プロジェクトの作成
Cargoの恩恵を受けるためには、cargo newによってプロジェクトを作成する必要があります。
$ cargo new hello_cargo
このコマンドを実行することで、カレンとディレクトリにhello_cargoというプロジェクトフォルダが作成されます。
今回はプロジェクト名をhello_cargoとしていますが、newの後ろを任意の文字列にすることで、好きなプロジェクト名を指定することができます。
中身の確認
作成されたプロジェクトフォルダの中身はこのようになっています。
└── hello_cargo
├── Cargo.toml
└── src
└── main.rs
Cargo.toml
このファイルには、主にビルド時に必要な設定を記述します。
ファイルを開くと、生成時点では以下のようになっています。
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"
[dependencies]
この形式はTOML形式といい、Cargoの設定フォーマットです。
packageセクション – この文以降に、設定を記述するという目印です
name – パッケージ名が記述されています
version – そのプログラムのバージョンが記述されています
edition – 使用するRustのエディションが記述されています
※エディションに関しては、こちらを参照してください。
dependenciesセクション – この文以降に、依存するライブラリを記述していきます
main.rs
次に、生成されたmain.rsを開いてみましょう。
fn main() {
println!("Hello, world!");
}
Hello, world!と表示するプログラムが自動で用意されていますね。
ここを少し変えてHello, Cargo!と表示されるようにしてみましょう。
fn main() {
println!("Hello, Cargo!");
}
これでHello, Cargo!と表示されるようになりました。
プログラムをビルドしてみる
ここまでCargoを使用してRustを実装してみましたが、前回の記事の内容と何も変わらない!
むしろ、いろんなフォルダやファイルが生成されて複雑だ!
と思った方もいるかもしれません。
確かに、この程度のプログラムなら、Cargoの恩恵を十分に受けることはできません。
しかし、これから先のRustでの開発に向けてCargoに慣れておきましょう。
まずは、プロジェクトのビルドです。
プロジェクトフォルダで以下のコマンドを実行するとビルドすることができます。
$ cargo build
ビルドが成功すると、プロジェクトフォルダにtargetフォルダが生成されます。
ここまでくれば、あとは生成した実行ファイルを参照するだけです!
実行してみる
実行ファイルは、target/debug/hello_cargoとなります。(windowsではtarget/debug/hello_cargo.exe)
これを実行するには、以下のパスをコンソールに入力します。
$ ./target/debug/hello_cargo
このパスを実行し、コンソールにHello, Cargo!と表示されていれば成功です!
便利なCargo
ここで、「いちいち実行するのにそんな長いパス書きたくない」「ビルドに毎回時間がかかるのが煩わしい」と思った方はいないでしょうか。
実は、みんなそう思っています。
そこでCargoには、より開発効率が良くなるようにいくつかのコマンドが用意されています。
cargo run
このコマンドは、実行ファイルを参照する際に、いちいち長いパスを書かずとも一発で実行ファイルを参照してくれます。
プロジェクトディレクトリで、以下のようにコマンドを実行します。
$ cargo run
たったこれだけで、あの長いパスを省略できるのは、とても便利ですね!
また、このコマンドは、cargo buildを内包しているので、プロジェクトに対していきなりcargo runを実行すると、自動でビルドしてくれます。
cargo check
このコマンドは、プロジェクトをビルドせずに、ソースコードにエラーがないかを確認してくれます。
これを使用しない場合、ソースコードのエラーの確認は、cargo buildコマンドを実行しなければなりません。
ビルドには少し時間がかかるため、少しの修正でも多くの時間をかけなければなりません。
そういう時はcargo checkを使いましょう。
プロジェクトディレクトリで、下記のコマンドを実行すると
$ cargo check
エラーがない場合Finished ~~と表示され、エラーがある場合はerror : ~~と表示されます。
このコマンドは実行すると、瞬時にソースコードをチェックし結果を返してくれるため、ビルドよりも大幅に時間を短縮することができます。
より効率良く、Rustでの開発ができるようにCargoを使いこなしていきましょう!
次回は、変数についてまとめていこう思います。
参考記事
- The Rust Programming Language 日本語版