Como compilar um aplicativo Rust para Windows no Linux? Cross-compilação do zero
Olá a todos! Estou escrevendo um pequeno aplicativo CLI em Rust no Linux, mas preciso que ele funcione também no Windows. O problema é que não quero mudar para o Windows apenas para compilar — quero gerar o arquivo exe diretamente do Ubuntu.
Adicionei o target `x86_64-pc-windows-gnu` via `rustup target add`, mas ao tentar compilar com `cargo build --target x86_64-pc-windows-gnu` recebo vários erros de linkagem, como:
```
error: linking with `x86_64-w64-mingw32-gcc` failed: exit status: 1
|
= note: /usr/bin/x86_64-w64-mingw32-ld: cannot find -ladvapi32
/usr/bin/x86_64-w64-mingw32-ld: cannot find -luserenv
```
Li que é necessário o MinGW-w64, instalei via apt, mas os erros persistem. Também tentei instalar `mingw-w64` — não adiantou. Meu código é simples:
```rust
use std::process::Command;
fn main() {
let output = Command::new("cmd")
.args(&["/C", "echo Hello from Windows!"])
.output()
.expect("failed to execute process");
println!("{}"