使用 M1 mac 将 Rust 程序编译为 exe?

Omn*_*kar 4 macos rust

我在我的 M1 Mac 上用 Rust 编写了一个程序,并将其编译为 Unix 可执行文件。现在我也想将它编译为 Windows 可执行文件。我第一次尝试

$ cargo target add x86_64-pc-windows-gnu
$ cargo build --release --target=x86_64-pc-windows-gnu
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

错误:x86_64-w64-mingw32-gcc找不到链接器

所以我尝试了

$ brew install mingw-w64
Run Code Online (Sandbox Code Playgroud)

根据这个,并得到错误:

错误:mingw-w64:没有可用的瓶子!

我查看了Formulae.brew.sh,似乎mingw-w64不支持 M1,仅支持 Intel。

如何使用我的 M1 Mac 从 Rust 编译 exe?

Sah*_*evs 10

解决方案一:

您可以使用以下命令安装/添加目标:

rustup target add x86_64-pc-windows-gnu
rustup toolchain install stable-x86_64-pc-windows-gnu
Run Code Online (Sandbox Code Playgroud)

然后你可以从你的Mac定位Windows:

cargo build --release --target=x86_64-pc-windows-gnu
Run Code Online (Sandbox Code Playgroud)

解决方案2:简单地使用docker!

FROM mcr.microsoft.com/windows/servercore:ltsc2019
// install rust
COPY project c:/project
RUN cd c:/project && cargo build --release
Run Code Online (Sandbox Code Playgroud)

方案3:还有Cross。您可以使用它进行交叉编译: https ://github.com/rust-embedded/cross

  • 我尝试了解决方案 1,但仍然收到“错误:未找到链接器 `x86_64-w64-mingw32-gcc`” (3认同)