🚘

Rustrover on Windows without MSVC

2023/11/30に公開

概要

Windows上で、JetBrains社のRustRoverの開発環境を構築します。
なお、MSVCではなくGNU-Cを使用します。

準備

おしながき

  • WindowsへのRust環境構築
  • RustRover環境構築
  • cargo-generateインストール

環境一覧

今回環境構築する主なソフトウェアの執筆時のバージョンの一覧です。
バージョンの違いにより動作が異なる場合がありますので、その場合は頑張ってください。

名前 リビジョン 確認方法
Windows 11 22H2 設定アプリ → システム → バージョン情報
RustRover EAP (2023/11/25build) ヘルプ → バージョン情報
Chocolatey 2.2.2 > choco --version
Rustup 1.26.0 > rustup --version
cargo-generate 0.18.5 > cargo-generate -V

WindowsへのRust環境構築

Chocolatey

Windows用パッケージマネージャとしてChocolateyをインストールします。
公式ページのインストール方法にしたがってインストールします。

PowerShellを管理者モードで起動し、以下のコマンドを実行します。

PowerShell(管理者モード)
> Set-ExecutionPolicy Bypass -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

インストールが完了したら、いったん、PowerShell(管理者モード)を閉じます。

Rust toolchain installerのインストール

Rustのtoolchain installerであるrustupをインストールします。ここではchocolateyを使用して、インストールすることにします。

PowerShellを管理者モードで起動し、以下のコマンドを実行します。

PowerShell(管理者モード)
> choco install rustup.install

インストールが完了したら、いったん、PowerShell(管理者モード)を閉じます。

Rustupの実行

PowerShellを管理者モードで起動し、以下のコマンドを実行します。

PowerShell(管理者モード)
> rustup toolchain install stable-gnu
> rustup default stable-gnu
> rustup set default-host x86_64-pc-windows-gnu
> rustup toolchain uninstall stable-msvc

> rustup component add rust-src
> rustup component add rust-analyzer
> rustup component add llvm-tools
> rustup component add rls

GNU版のtoolchainをインストールし、Windows環境をデフォルトにします。また、MSVC版のtoolchainは不要なので削除しています。

そして、その他必要なコンポーネントをインストールしています。

おまけ(git)

Chocolateyを使って、Windows用のgitコマンドをインストールできます。

PowerShell(管理者モード)
> choco install git -y

RustRover環境構築

RustRoverをインストールします。インストールは、JetBrains Toolbox経由で行うことにします。

インストール

まず、JetBrains Toolboxをインストールします。

インストール後、JetBrains Toolboxを起動し、"入手可能"プルダウンメニューから、RustRoverを選び、インストールします。

起動

JetBrains ToolboxからRustRoverを起動します。初回起動時にUSER AGREEMENTが表示されますので、"Continue"をクリックします。

設定

RustRoverの設定を行います。起動後、カスタマイズのすべての設定から、以下の設定を行います。

  • ビルド、実行、デプロイ
    • デバッガー
      • Rust デバッガー : GDB
  • 言語 & フレームワーク
    • Rust
      • 外部リンター
        • 外部ツール: Clippy

チェックツールをCargo CheckからClippyに変更しています(お好みで)。
また、toolchainにgnuを使用しているので、RustデバッガーをLLDBからGDBに変更します。

その他、お好みでJapanese Language Packプラグインを追加するなどしてください。

確認

新規プロジェクトを作成し、実行、ブレークポイントを使ったデバグ実行ができればokです。

cargo-generateインストール

Rustプロジェクトをテンプレートから初期化するcargo-generateツールをインストールします。

msys2インストール

PowerShellを管理者モードで起動し、以下のコマンドを実行します。

PowerShell(管理者モード)
> choco install msys2

インストールが完了したら、いったん、PowerShell(管理者モード)を閉じます。

MinGW-w64

MinGW-w64用ツールをインストールします。

まず、コントロールパネルの"システム環境変数の編集"を開き、"環境変数..."ボタンをクリックし、環境変数ダイアログを表示します。
そして、システム環境変数に、"MSYSTEM"="MINGW64"を追加します。
同じ、ユーザー環境変数の"Path"に以下の二つのパスを追加します。

  • C:\tools\msys64\mingw64\bin
  • C:\tools\msys64\usr\bin

続いて、PowerShellを起動し、以下のコマンドでmingw64コンソールを起動します。

PowerShell
> mingw64

Pacmanパッケージマネージャを使って、MinGW64用開発ツールをインストールします。

mingw64
$ pacman -S mingw-w64-x86_64-gcc

いったん、mingw64コンソールとPowerShellを閉じます。

cargo-generateインストール

PowerShellを起動し、以下のコマンドでcargo-generateをインストールします。

PowerShell
> cargo install cargo-generate

おまけ

リアルタイム保護が検出されたって?

Microsoft Defenderなどのリアルタイム保護が有効になっていると、ビルド速度が低下するので除外リストに追加した方が良いですよ? 的なメッセージが出ることがあります。

自動でやってもらっても良いのですが、公式手順にしたがって、手動で設定してみます。

  • スタートメニューから"Windows セキュリティ"を検索し、選択する
  • "ウイルスと脅威の防止"を選択する
  • "ウイルスと脅威の防止の設定"項目の"設定の管理"を選択する
  • 一番下の方にある"除外"項目の"除外の追加または削除"を選択する。このとき、管理者権限が要求されます
  • 以下のディレクトリを除外に追加します (プロジェクトを既定の場所(%USERPROFILE%\RustroverProjects)以外に置く場合は、そのディレクトリに置き換えてください)
    • %APPDATA%\JetBrains
    • %LOCALAPPDATA%\JetBrains
    • %USERPROFILE%\RustroverProjects
    • %USERPROFILE%.gradle

もちろん、所属する組織のセキュリティポリシー等に従って、だめなら諦めるか戦ってください。

Discussion