📚

Windows版Rustのmsvcビルド環境を作る

2022/07/20に公開

ビルド環境容量デカすぎ

関連記事:
WSL2で作るWindows開発環境: Rustが征く(1)

------------------- ↓ 前書きはここから ↓-------------------

Rust製のコマンドラインツールが年々増えている。
最近使ったのはMinecraftのmod管理ツールferium
(またマイクラかい)

それはさておき、
Rust製のコマンドラインが増えたとなると、
コマンド実行環境が必要となるが、
バイナリ配布でもしてない限り、
ビルドが必要になる。
特にRustコマンドはWindowsとは疎遠になりがち。
なのでちょっとWindowsビルド実行環境を用意しようと思う。

ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪

------------------- ↓ 本題はここから ↓-------------------

ビルド環境をインストール

Rustのビルド環境にはGNU版とMSVC版がある。
GNU版はMsysのようなLinux実行環境上で動くやつ、
MSVC版はVisual C++でビルドするやつだ。
手軽にWindows上でコマンド作るにはMSVC版を使う方がいい。

gsudo winget install Rustlang.Rust.MSVC

RustでMSVC環境でビルドするために、
Visual StudioのC++ライブラリが必要だが、
Visual Studioを丸ごと入れるのではなく、
BuildToolだけインストールする。

gsudo winget install Microsoft.VisualStudio.2022.BuildTools

「Visual Studio Installer」を起動する

「C++によるデスクトップ開発」をチェック

「vxxxビルドツール用C++/CLIサポート(開発)」をチェック

試しにビルド

cargoコマンドでインストールできるrustコマンドをビルドしてみる。
インストールされたコマンドのバージョン管理をするcargo-updateを使う。

cargo install cargo-update
    Updating crates.io index
  Downloaded cargo-update v8.1.4
・・・
  Installed package `cargo-update v8.1.4` (executables `cargo-install-update-config.exe`, `cargo-install-update.exe`)

実行してみる

 cargo install-update -a
    Updating registry 'https://github.com/rust-lang/crates.io-index'

Package       Installed  Latest  Needs update
cargo-update  v8.1.4     v8.1.4  No

No packages need updating.
Overall updated 0 packages.

|ω・) 動いてる

------------------- ↓ 後書きはここから ↓-------------------

アップデートには注意が必要

wingetでインストールするとアプリの管理はwingetでやりたくなるが、
rustパッケージは常に追加であって更新ではない。
なのでアップグレードの際は旧パッケージの削除が必要。

winget uninstall Rustlang.Rust.MSVC
winget install Rustlang.Rust.MSVC

もしすでに重複インストールしてしまうと、
wingetコマンドではコントロールできないので、
「アプリケーションの追加と削除」から古い方を削除する

Discussion