目次
プロジェクト作成
まず、hello
という名前のプロジェクトを作成します。
cargo new <プロジェクト名>
というコマンドを利用するとhello
ディレクトリにプロジェクトが出来上がります。
$ cargo new hello Created binary (application) `hello` package $ cd hello $ tree . . ├── Cargo.toml └── src └── main.rs 1 directory, 2 files
Cargo.toml
はパッケージのバージョンや読み込むライブラリを設定するファイルです。
TOML
についてはこちら。
Cargo.toml
[package] name = "hello" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies]
Rustのソースコードは、src
ディレクトリのmain.rs
というファイルになります。
main.rs
fn main() { println!("Hello, world!"); }
- main関数(fn main()部分)を実行し、
println!
マクロで "Hello, world!" をコンソールに表示するという意味になります。
ビルド
ビルドにはcargo build
を使います。
hello
ディレクトリにいる状態で実行します。
$ cargo build Compiling hello v0.1.0 (/mnt/c/workspace/Github/language-examples/Rust/hello) Finished dev [unoptimized + debuginfo] target(s) in 2.38s $ tree . . ├── Cargo.lock ├── Cargo.toml ├── src │ └── main.rs └── target ├── CACHEDIR.TAG └── debug ├── build ├── deps │ ├── hello-f10f454b064da970 │ └── hello-f10f454b064da970.d ├── examples ├── hello ├── hello.d └── incremental └── hello-2mghwo7kpinkd ├── s-ge03h8nmqd-uw9nnv-1uzy4u92gue27 │ ├── 1d6crpaiajeebzfe.o │ ├── 3a44f156fv0rzb76.o │ ├── 3g9kzsj53phza7ii.o │ ├── 42jn790wo4cvbi0y.o │ ├── 48bco2yrw0xezka8.o │ ├── 54y1yn6ksdtd3wa1.o │ ├── 5doja4y44nwg3ez0.o │ ├── 5dxeof03oiet4swm.o │ ├── dep-graph.bin │ ├── query-cache.bin │ └── work-products.bin └── s-ge03h8nmqd-uw9nnv.lock 9 directories, 20 files
いろいろなファイルができますが、実行ファイルは target/debug/hello
です。
実行ファイルなどを削除して最初の状態に戻したいときは cargo clean
を使います。
clean後
$ cargo clean $ tree . . ├── Cargo.lock ├── Cargo.toml └── src ├── main └── main.rs
プログラムの実行
直接実行する
まずは実行ファイルを直接実行する方法。
$ ./target/debug/hello Hello, world!
cargo run を使って実行する
またはcargo run
を使う。
cargo run
はビルドと実行が同時に行われます。
$ cargo run Finished dev [unoptimized + debuginfo] target(s) in 0.04s Running `target/debug/hello` Hello, world!
1つのファイルのみコンパイルする
rustc
を使います。
ソースと同じディレクトリに実行ファイルができあがります。
srcディレクトリ上で実行
$ rustc main.rs $ ls -l 合計 3800 -rwxrwxrwx 1 fumo fumo 3887960 9月 29 23:51 main -rwxrwxrwx 1 fumo fumo 45 9月 29 23:26 main.rs $ ./main Hello, world!