rust: rust-0.9 あたりからおよそ4年ぶりに rust-1.29 を使ってみる(開発環境の準備)
終末にちょっとしたツールを作ろうかと思い、もののついでに rust の知識をアップデート…というより再学習して遊ぼうかと思いました。
4年前に遊んだ記憶
- rust-0.9 が最後に手元で遊んだ頃の rust だった覚えがある
- ユーザーとして簡単な何かを作れそうなコード実装に必要な程度には公式ドキュメントは読んだ
- 実用アプリは作るに至らず、言語仕様を理解して使用できるようにと小さなサンプルを書いて勉強していた程度
- うさぎさんでもわかるRustプログラミング言語リファレンス とか書いていた
- Arch か Ubuntu あたりの GNU/Linux 系の環境で遊んだ
現在の rust の状況
- rust-1.29.0-nightly の時代( stable は rust-1.27.2 )
- Note: 0.9, 1.0, 1.1, ... , 1.9, 1.10, 1.11, ... , 1.29 と minor バージョン番号が複数桁となる方式
rustup
とかいうので rust のツールチェインをお手軽インストール
今回の環境
Windows 10 で rust 開発環境を準備する
Note: Microsoft Visual Studio 2017 の C++ ツールチェインは使用可能な状態で開始。
- https://rustup.rs から
rustup-init.exe
を入手して実行。 - 標準設定( x86_64-windows-msvc / stable / yes )ままインストール
- Note: 最初から nightly を選んでおいてもよい
- PATH の通った適当な端末エミュレーター的な環境(cmd, ps, mingw など)から
rustup
,rustc
,cargo
など--version
して最小限のセットアップの確認
少なくとも標準設定でインストールする分には、まったく苦労どころやひっかかりどころはありませんでした😃
rust のプロジェクトを作って vscode で遊べるようにする
cd プロジェクトのディレクトリーを格納したいどこか
cargo new guessing_game --bin
; guessing_game は hoge でもなんでもお好みで。vscode hoge
; 著者環境ではalias vscode=
しています。環境に応じて読み替えるなり、 Windows の Explorer からポチポチして開くなり適当に。- vscode に rust っぽいプラグインを入れる
Rust (rls)
; たぶんこちらを入れておけばよいRusty Code
; ↑と同様な機能のプラグインっぽいが更新が年単位で無いのであえてこちらを使う特別な理由を見いだせなければ↑を入れておけばいいと思うC/C++
- .vscode/tasks.json を書く; ↓↓参照
- .vscode/launch.json を書く; ↓↓参照
{ "version": "2.0.0" , "tasks": [ { "label": "cargo build debug" , "type":"shell" , "command": "cargo" , "args": [ "build" ] , "group": { "kind": "build" , "isDefault": true } , "problemMatcher": "$rustc" } , { "label": "cargo build release" , "type":"shell" , "command": "cargo" , "args": [ "build", "--release" ] , "group": "build" , "problemMatcher": "$rustc" } , { "label": "cargo clean" , "type":"shell" , "command": "cargo" , "args": [ "clean" ] , "problemMatcher": [] , "presentation": { "panel": "new" } } ] }
{ "version": "0.2.0" , "configurations": [ { "name": "Debug" , "type": "cppvsdbg" , "request": "launch" , "program": "${workspaceRoot}/target/debug/guessing_game" , "args": [] , "stopAtEntry": false , "cwd": "${workspaceFolder}" , "environment": [] , "externalConsole": false , "preLaunchTask": "cargo build debug" , "internalConsoleOptions": "openOnSessionStart" } ] }
main.rs
に break ポイントを貼ってデバッグ実行(≃F5)したり、 lib.rs を追加してライブラリー的なものをごにょごにょしたりして楽しむ(思い出す、再学習する😏)。環境が整ったら、必要な事はほとんどすべて The Rust Programming Language(または古いようだが参考にはなるかもしれない rust-1.6 の日本語版 プログラミング言語Rust )に書いてあるはずなので、適当に勉強して楽しむ。
Windows での開発環境はどうせ何かしら面倒な事が起きるだろう、と思っていたけれど、ツールチェインに msvc を使う限りにおいてはそこの準備をさておけば面倒ごとは何も起きなかった。善き哉。・・・ llvm や gnu のツールチェインを windows で使う場合は何か面倒なりひと手間なりあるかもだけど、「とりあえず msvc ツールチェインでも動けばいっかー」の程度であれば、一般的なアプリケーション開発者であれば苦労なく開発環境を用意できるようだ😃
おまけ: rust のツールチェインを切り替えたくなったら
例えば、 stable でツールチェインをインストールしたけれど、 nightly を使いたくなった場合は、
rustup default nightly
をコマンドすると必要なら最新版をダウンロードしてパスの通ったツールチェインを nightly へ切り替えてくれる。
ちなみに、標準インストールした場合、ユーザーのホームディレクトリーの .cargo に標準で使用するツールチェインの bin などが入り、 .rustup/toolchains/ に stable-x86_64-pc-windows-msvc/ や nightly-x86_64-pc-windows-msvc/ のように rustup で扱ったツールチェインが実行可能な状態でそのまま入っている。