RustをWindows10にインストールしてサンプルプログラムを走らせる

4 min read読了の目安(約4400字

はじめに

Rust(ラスト)は、C言語、C++に代わるシステムプログラミング言語と言われています。OSや言語を記述するのに適した言語というわけです。
本稿では、RustをWindows10にインストールし、簡単なプログラムを実行するまでを紹介します。
なお、UbuntuやmacOSへのインストールや、簡単なプログラムの実行方法は以下のURLを参照ください。

参考URL

自身のブログから転載しました。
RustをWindows/Ubuntu/macOSにインストールしてサンプルプログラムを走らせる

Rustのダウンロード

こちらのリンクからダウンロードページに進み、[RUSTUP-INIT.EXE(64-BIT)をダウンロードする]をクリックします。

ダウンロードした「rustup-init.exe」を実行します。

Microsoft C ++ビルドツールのインストール

すでに、C ++ビルドツールがインストールされている場合は、この項をスキップしてかまいません。
「rustup-init.exe」を実行し、次のメッセージが出た場合は、いったん、「n」を入力してインストーラを終了します。

メッセージは、およそ次のようなことが書かれています。

「Rustには、Visual Studio2013以降のMicrosoft C ++ビルドツールが必要です。しかしまだインストールされていないようです。続行する前に、C ++ビルドツールをインストールしてください。」

後でインストールしても良いようですが、私は先にしました。
このリンクから、C ++ビルドツールのダウンロードサイトに移動します。「Build Toolsのダウンロード」をクリックし、インストーラをダウンロードします。

ダウンロードしたインストーラを起動します。


C++ Build Toolsのチェックボックスをチェックし、[インストール]をクリックします。


インストール後、Windowsを再起動します。

Rustのインストール

Rustのインストーラを起動すると、次の画面が表示されます。デフォルトの「1」を選択します。

最後に[Enter]キーを入力すると下のウインドウが閉じます。

これでインストールは完了です。
PowerShellを起動して、rust関連のコマンドが実行できることを確認します。

> cargo -V
cargo 1.51.0 (43b129a20 2021-03-16)
> rustc -V
rustc 1.51.0 (2fd73fabe 2021-03-23)

Hello Worldを表示してみよう

任意の場所に「rust」フォルダを作成します。
次に、「cargo new プロジェクト名」でプロジェクトを作成します。下ではプロジェクト名を「show_os_ver」としました。

> mkdir rust
> cd rust
> cargo new show_os_ver
     Created binary (application) `show_os_ver` package

プロジェクトのディレクトリ構成をtreeコマンドで表示したのが下の図です。

> tree
C:.
└─show_os_ver
    ├─src
    └─target
        └─debug
            ├─.fingerprint
            │  └─show_os_ver-6e9761e250227a20
            ├─build
            ├─deps
            ├─examples
            └─incremental
                └─show_os_ver-2pbgi5bw157s3
                    └─s-fx46y9e08f-st9gr9-7vzjtifks76a

show_os_ver\src\main.rsがソースコードです。

> cd .\show_os_ver\src
> cat main.rs
fn main() {
    println!("Hello, world!");
}

すでに、「Hello World」を出力するプログラムがおかれているので、これをビルドして実行します。
cargo runコマンドが便利です。ビルドと実行を一気に行ってくれます。

> cargo run
   Compiling show_os_ver v0.1.0 (C:\Users\xxxx\works\rust\show_os_ver)
    Finished dev [unoptimized + debuginfo] target(s) in 2.12s
     Running `target\debug\show_os_ver.exe`
Hello, world!

OSのバージョンを表示してみる

これまで、プログラムを何も作っていないので、OSのバージョンを表示する簡単なプログラムを作ってみます。
エディタでmain.rsを編集します。

use std::process::Command;
fn main() {
    let proc = Command::new("wmic")
        .args(&["os", "get", "caption"])
        .output()
        .expect("Failed to start `wmic`");
    println!("{}", String::from_utf8_lossy(&proc.stdout));
}

プログラムからwmicコマンドを引数付きで実行し、wmicから受け取った出力結果を表示します。

  • let proc = Command::new(“wmic”) の行でwmicコマンドを実行します。
  • .args(&[“os”, “get”, “caption”]) でwmicに与える引数を指定します。
  • .output() でwmicの実行完了を待つと同時に出力を受け取ります。
  • .expect(“Failed to start wmic“); で例外処理を登録します。
  • println!(“{}”, ・・・); でwmicの実行結果を表示します。
> cargo run
   Compiling show_os_ver v0.1.0 (C:\Users\xxxxx\works\rust\show_os_ver)
    Finished dev [unoptimized + debuginfo] target(s) in 0.53s
     Running `C:\Users\xxxxx\works\rust\show_os_ver\target\debug\show_os_ver.exe`
Caption
Microsoft Windows 10 Enterprise Evaluation

OSのバージョンを表示することができました。

さいごに

WSL(Windows Subsystem for Linix)上のUbuntuや、macOSで上記と同じことをしたい方は、よければ、以下のブログも参照ください。

RustをWindows/Ubuntu/macOSにインストールしてサンプルプログラムを走らせる