Windows の PowerShell 上で動かすツールを Rust で作って Windows 用にビルドしようとした。が、Windows上にビルド環境を作ろうとすると15GBくらいストレージを使うようだった。
WSLの Ubuntu 上に環境を作るほうがディスク容量食わないようなので、クロスコンパイルしてみた。
環境
- Windows 10
- Ubuntu 20.04 LTS
手順
mingw-w64 インストール
Windows バイナリを作るために必要。800MB程度の容量のみ食うようだ。Windows 上に比べると必要容量は少なめなのでこちらを選択した。
sudo apt install mingw-w64
Target を追加する
Target を追加する。 Platform Support (doc.rust-lang.org) に target 一覧がある。
rustup target add x86_64-pc-windows-gnu
~/.cargo/config
を編集
[target.x86_64-pc-windows-gnu]
linker = "/usr/bin/x86_64-w64-mingw32-gcc"
ビルド
cargo build --target x86_64-pc-windows-gnu
target/x86_64-pc-windows-gnu/debug/
以下に .exe
ファイルができているので、Windows にコピーして使う。