Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter 1.3 Hello, Cargo! #3

Open
euledge opened this issue Feb 6, 2019 · 3 comments
Open

Chapter 1.3 Hello, Cargo! #3

euledge opened this issue Feb 6, 2019 · 3 comments

Comments

@euledge
Copy link
Owner

euledge commented Feb 6, 2019

Cargoは、Rustのビルドシステム兼、パッケージマネージャです。ほとんどのRustaceanはこのツールを使用して、 Rustプロジェクトの管理をしています。Cargoは、コードのビルドやコードが依存しているライブラリのダウンロード、 それらのライブラリのビルドを行ってくれる。この章では以下を学ぶ

  • Cargoの慣習を使用して新しいプロジェクトを作成し、実行する方法
@euledge
Copy link
Owner Author

euledge commented Feb 6, 2019

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

$ cargo new hello_cargo --bin
     Created binary (application) `hello_cargo` package

--binオプションで実行可能なファイルを作成する。
--libオプションでライブラリ(dllやso)を作成する。

$ ls -lah hello_cargo/*
-rw-r--r-- 1 hitos 197609 135 Feb  7 00:02 hello_cargo/Cargo.toml

hello_cargo/src:
total 1.0K
drwxr-xr-x 1 hitos 197609  0 Feb  7 00:02 .
drwxr-xr-x 1 hitos 197609  0 Feb  7 00:02 ..
-rw-r--r-- 1 hitos 197609 45 Feb  7 00:02 main.rs

Cargo.tomlはパッケージの設定や依存ライブラリを記述する、 build.gradle みたいなもの
rustのソースは srcフォルダの下に配置される。

@euledge
Copy link
Owner Author

euledge commented Feb 6, 2019

1.3.2 Cargoプロジェクトをビルドし、実行する

cargo buildでコンパイルを行う。
rustcの時はソースファイルと同じフォルダに実行可能ファイルが作成されたが、
cargo build の場合は target/debugに作成される

$ cargo build
   Compiling hello_cargo v0.1.0 (D:\workspace\RustGuidebook\Chapter1.3\hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 5.14s

$ target/debug/hello_cargo.exe
Hello, world!

cargo runで実行してみる。

$ cargo run
   Compiling hello_cargo v0.1.0 (D:\workspace\RustGuidebook\Chapter1.3\hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 1.01s
     Running `target\debug\hello_cargo.exe`
Hello, world!

cargo runでコンパイルと実行が行われる。ソースコードの変更を管理しているので2回目以降はソースファイルの変更がなければコンパイルを行わない。

cargo checkでコンパイルできるかの確認(文法チェック)してみる。

$ cargo  check
    Checking hello_cargo v0.1.0 (D:\workspace\RustGuidebook\Chapter1.3\hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.19s
  • cargo buildかcargo checkでプロジェクトをビルドできる。
  • プロジェクトのビルドと実行を1ステップ、cargo runでできる。
  • ビルドの結果をコードと同じディレクトリに保存するのではなく、Cargoはtarget/debugディレクトリに格納する。

euledge added a commit that referenced this issue Feb 6, 2019
@euledge
Copy link
Owner Author

euledge commented Feb 6, 2019

リリースビルドを行う

cargo build --release を実行して最適化を行った実行可能ファイルを生成する

$ cargo build --release
   Compiling hello_cargo v0.1.0 (D:\workspace\RustGuidebook\Chapter1.3\hello_cargo)
    Finished release [optimized] target(s) in 1.09s

cargo run --release とすれば最適化された実行可能ファイルで実行ができる

$ cargo run --release
    Finished release [optimized] target(s) in 0.02s
     Running `target\release\hello_cargo.exe`
Hello, world!

cargo clean で成果物をクリーンできる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant