Rust Cargo でプロジェクト管理、リリースビルドの方法

Rust Cargo でプロジェクト管理、リリースビルドの方法

Cargo とは

Cargo はRustのビルドシステムおよびパッケージマネージャです。Cargoは、コードの構築、コードが依存するライブラリのダウンロード、それらのライブラリの構築など、多くのタスクをユーザーに代わって処理します。

.NET でいうところの nuget や Javascript でいうところの npm みたいなパッケージ管理機能 + ビルド時のもろもろの便利機能を提供してくれます。

Cargo を使うことで、直接 rustc を使ってコンパイルして、ビルドしたプログラムを実行して動作を確認してという手間も省けます。

以下、Cargo を使ってプロジェクトを作成し、実行したりする方法をまとめます。

詳しく知りたい場合は以下のページに詳しくあります。詳しく知りたい場合は

Cargo インストールの確認

$ cargo --version
cargo 1.32.0 (8610973aa 2019-01-02)

Cargo は Rust コンパイラをインストールするときに一緒にインストールされているはずです。バージョンを確認しておきます。

Cargo プロジェクトを作成する

適当な作業ディレクトリで、次のコマンドを使ってプロジェクトを作成します。

$ cargo new my-project
     Created binary (application) `my-project` package
$ cd .\my-project\

プロジェクトのディレクトリが作られ、もろもろのファイルが生成されています。内容はこんな感じです。

Cargo.toml にこのプロジェクト(パッケージ)に関する情報が記述されます。名前やバージョン、管理者の情報などです。

外部ライブラリを使う場合は依存関係などもここにまとめて管理され、別環境でもすぐに開発環境を再現できるようになります。npm でいうところの package.json と同じようなものです。

Rust用の .gitignore も生成され、src以下にはエントリポイントとなる main.rs も生成されています。

“Hello world” のプログラムがすでに記述されているので動かしてみます。

Cargo をつかってビルド

$ cargo build

Cargo のビルドは src/main.rs がエントリポイントとなり実行され target/debug以下に実行ファイルが生成されます。--release を付けると製品版ビルドを実行できます。

debug ビルドの実行ファイルを実行するには以下のコマンドです。(windowsの場合)

$  .\target\debug\hello_cargo.exe

プロジェクトのディレクトリ構成

このページを見てみると、プロジェクトのディレクトリは以下のようにするのが良いとあります。

▾ src/           # directory containing source files
  lib.rs         # the main entry point for libraries and packages
  main.rs        # the main entry point for packages producing executables
  ▾ bin/         # (optional) directory containing additional executables
    *.rs
  ▾ */           # (optional) directories containing multi-file executables
    main.rs
▾ examples/      # (optional) examples
  *.rs
  ▾ */           # (optional) directories containing multi-file examples
    main.rs
▾ tests/         # (optional) integration tests
  *.rs
  ▾ */           # (optional) directories containing multi-file tests
    main.rs
▾ benches/       # (optional) benchmarks
  *.rs
  ▾ */           # (optional) directories containing multi-file benchmarks
    main.rs

いきなり深く考える必要はないと思いますが、src/main.rsがエントリポイントで、ビルドされた実行ファイルは target/debug 以下に生成されるというのを覚えておきましょう。

Cargo を使ってすぐに実行する

いちいちビルドして実行ファイルを作成 -> 実行とコマンドを実行するのは面倒ですが、run コマンドが用意されておりこれを実行すると、いきなりプログラムの実行までしてくれます。

$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.02s
     Running `target\debug\my-project.exe`
Hello, world!

プログラムが実行され、”Hello, world!” が出力されていることが確認できます。

Cargo を使ってチェック

$cargo check

check コマンドでビルドを実行せずにビルド可能なコードかどうかチェックできます。ビルド自体はされないので高速にチェックが可能です。

以上。

Rustカテゴリの最新記事