Rustで Windows用バイナリを Ubuntu 上でクロスコンパイル

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 にコピーして使う。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です