この記事を読むのに必要な時間は約 8 分です。
今回からRust 初学者向けの基本文法を記事にしていきたいと思います。
とはいえ自分も全くの初学者で、FE開発をしている中、学んだほうが良さそうだということで突発的に始めています。
下記のサイトの内容を自分の詰まったところをそっと添えて備忘録としてまとめていきますので温かい目で見守ってください。
Rust 環境構築 (Linux, Mac)
Rust のインストールは下記のコマンドをコマンドラインで実行すれば良いようです。
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
実行結果
... Rust is installed now. Great!
Greatですぜ。一応以下のコマンドでバージョン確認をしておきましょう。
$ rustc --version
超簡単ですね。
Hello World
適当なディレクトリにmain.rs という名前でファイルを作成しましょう。
自分はwork/training_rust/ の中で管理していこうと思います。下記のmain関数でHello World を実行しましょう。
fn main() { // 世界よ、こんにちは println!("Hello, world!"); }
ファイルを保存して以下の端末(terminal) で以下のコマンドを実行します。
$ rustc main.rs $ ./main Hello, world!
Hello, world! がコマンドラインに表示されればOKですが自分は早速エラーが出ました。
エラー: error: linker cc
not found
エラー内容
error: linker `cc` not found | = note: No such file or directory (os error 2) error: aborting due to previous error
リンカーが入っていないよというエラーですね。C言語でコンパイル時に使うgccに当たるものです。
下記コマンドでcc をインストールしましょう。
$ sudo apt install -y gcc
自分はUbuntuを使用しているのでaptを使いますが、
LinuxディストリビューションがFedora , RedHat , CentOSならaptではなくyumとしてください。
ちなみにubuntuでも sudo apt install yum でyumを使うことも可能です。
これで$rustc main.rs ,./main の実行ができるはずです。
この際、以下のようなエラーが出た場合は$ sudo apt updateを実行して再度トライしてください。
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/g/gcc-9/libasan5_9.3.0-17ubuntu1~20.04_amd64.deb 404 Not Found [IP: 160.26.2.187 80] E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/g/gcc-9/libgcc-9-dev_9.3.0-17ubuntu1~20.04_amd64.deb Unable to connect to jp.archive.ubuntu.com:http: [IP: 160.26.2.187 80] E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/g/gcc-9/gcc-9_9.3.0-17ubuntu1~20.04_amd64.deb Unable to connect to jp.archive.ubuntu.com:http: [IP: 160.26.2.187 80] E: Failed to fetch http://jp.archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/gcc_9.3.0-1ubuntu2_amd64.deb Unable to connect to jp.archive.ubuntu.com:http: [IP: 160.26.2.187 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Hello Cargo
Cargoは、Rustのビルドシステム兼、パッケージマネージャです。
Cargoは、コードのビルドやコードが依存しているライブラリのダウンロード、 それらのライブラリのビルドを行ってくれます。単純なプロジェクトでは、Cargoは単にrustc をまとめてやってくれるにすぎませんが、複数のクレートからなる複雑なプロジェクトでは、Cargoにビルドを調整してもらうのが遥かに簡単になるそうです。
ということで以後プログラムを書いていく際はCargoでプロジェクトを立ち上げるのが良さそうです。
実はRust インストール時にすでにCargoも入っています。下記のコマンドで確認しておきましょう。
$ cargo --version
ここではCargoを使用して新しいプロジェクトを作成し、元のHello, world!プロジェクトとの違いを見てみます。work/training_rust/で以下のコマンドを実行します。
$ cargo new hello_cargo --bin //新しいバイナリの実行可能ファイルを作成 $ cd hello_cargo
hello_cargo に移動するとCargo.toml とsrc ファイルができているかと思います。
toml の中身は以下のようになっていてCargoの設定ファイルが指定されています。
Flutter のyaml 的ファイルですね。
[package] name = "hello_cargo" version = "0.1.0" edition = "2018" [dependencies]
いざ実行です。実行には以下の2パターンがあります。
cargo build
かcargo check
でプロジェクトをビルドし./target/debug/hello_cargoを実行
※cargo check は実行可能ファイルを生成しないため高速でビルドできるのでコンパイルできるかサッと確かめるのに使うみたいです。- プロジェクトのビルドと実行を1ステップでできる
cargo run
を実行
ここではcargo runを実行しましょう。Hello, world! と表示されましたね!
今回は以上です。
コメント