はじめに
下記の記事の続きになります。
今回はコンパイルや実行についての記事になります。
コンパイル
Rust プログラムを実行する前に、Rustコンパイラを使用してコンパイルしなければなりません。
rustc コマンド を入力し、ソースファイルの名前を渡すことでコンパイルを実行します。
rustc はコンパイラ単体を直接使う方法ですが、依存関係管理やビルド設定を自動化するには Cargo を使うのが一般的です。
$ rustc main.rs
コンパイル結果
コンパイルが成功すると、カレントディレクトリに実行可能ファイルが生成されます。
- Windows:
main.exe - Linux / macOS:
main
ソースコード (.rs) と生成された実行ファイルが並ぶイメージです。
実行
$ ./main
コンパイルされたものを実行すると、「Hello world!」が出力される ![]()

RustはAOTコンパイル言語
Rust は Ahead-of-Time コンパイル(AOT) を採用しています。
これは、プログラムを事前にネイティブコードへ変換する方式です。
つまり:
- 実行ファイルを配布すれば、配布先が Rust をインストールしていなくても動く
- 実行時のオーバーヘッドが少なく、パフォーマンスが安定する
Java や JavaScript では JIT(Just-In-Time) コンパイル が採用されています。
これは実行中にコードを最適化して変換する方式です。
一方で Rust は実行前にすべてをネイティブコードにしておく AOT 方式 なので、実行時のオーバーヘッドが少なく高速に動作します。
さいごに
簡単なプログラムなら rustc でコンパイルするだけでも十分です。
しかし、プロジェクトが大きくなってくると 依存関係の管理やビルドの自動化 が必要になります。
それらをまとめて扱える Cargo についてはまたこんど。。
参考サイト
