いろいろ試してみたい言語処理系が多数あります。つい数か月前からもGo言語の勉強始めたところです。しかし「年に新言語ひとつ」のペースではとても死ぬまでにカバーしきれない、というわけでペースアップと。今回新たにRust言語始めます。「何でもできる」言語みたいですが、食いつきポイントは「低レベル、組み込み」ができるらしい点。
※「やっつけな日常」投稿順 indexはこちら
※今回は、マニュアル通りに言語処理系をインストールし、動作確認するところまでです。インストール確認に使用したのは、Raspberry Pi 4 model B機(Arm Cortex-A72)です。Raspberry Pi OS<32bit版、Linux>のバージョンは以下に。
Rust言語
Rust、「最近流行り」の言語じゃないかと思います。公式ホームページには日本語版もありです。
勿論、普通にLinuxやWindowsのPC上で走らせて開発に使える言語処理系なのですが、組み込み用のマイクロコントローラ(マイコン)に対してもクロス開発に使える部分がお好みです。今回インストールするターゲット機は、ラズパイ4です。ラズパイ4上でのセルフ開発に慣れたら、後でマイコンターゲットのクロス開発にも使ってみたい目論見。
インストール
さて、Rust処理系のインストールは、上記ホームページから辿ると出てくる以下のコマンドライン1行でOK。お手軽。
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
実際に走らせたところが以下に。ネットからダウンロードしたインストール用のスクリプトが走り、Rustで使用するツールチェーン等を実際にインストールしてくれるツールらしいRustupとか、パッケージマネージャであるCargoとか、次々にインストールしてくれますです。
インストールスクリプトの終了付近が以下に。
インストール直後にはRustのツール群にPATHが通っていないので、上記の末尾に書かれているとおり
$ source $HOEM/.cargo/env
するとPATHが通ります(.bashrcには追記されているのでシェルを開き直しても大丈夫。)
一応、rustc と cargo のバージョン確認すると以下でした。
$ rustc --version rustc 1.62.0 (a8314ef7d 2022-06-27) $ cargo --version cargo 1.62.0 (a748cf5a3 2022-06-08)
マニュアル通りに、cargoを使って、新たなプロジェクトを作ってみます。適当なプロジェクト・ディレクトリ内で、以下のようにすると hello_cargoプロジェクトができます。なお、Rustの人は命名時には「スネークケース」を強く推奨しているみたいです。Rustらしいコード書くときには注意しないと。
上記の Cargo.tomlというファイルが、このプロジェクトの設定ファイルらしいです。tomlのtはトムさんのTらしいです。ソースファイルは src 配下に「hello_world」ができてます。
さて、作成したプロジェクトディレクトリ(.tomlファイルがあるところ)に入って、ビルドしてみると以下のようです。
上記により新たに target ディレクトリができ、今回はその下の debug ディレクトリ内にオブジェクトファイルができてます。なお、release 用のオプションをつけてビルドすれば、リリース用にビルドされたオブジェクトが release ディレクトリにできるらしいです(やってないケド。)
実行したところが以下に。Hello, world!してますね。
ラズパイ4上での操作なので、WindowsPC上のVScodeからリモート接続してソースの編集も勿論可能。冒頭のアイキャッチ画像の通り。
しかしね~、Rust、結構カッコイイのだけれど、他の言語処理系にあまりないコンセプトも多いです。ちゃんと理解するためにはドキュメント読まねばなりますまいな。勿論ドキュメント充実(公式でなかったりしますが日本語版のドキュメントを用意してくださっている方もあり、大変ありがたいことです。)
分量多いぜ~、死ぬまでに読み終わるのか?