WinBridge
WinBridge is a command-line tool for Linux that builds Windows programs (.exe files) from your source code, checks that each result is a real Windows executable, and can run it on the same machine.
What it does
- Builds for Windows from Linux. Point
winbridge buildat a project folder. WinBridge works out what kind of project it is and uses a compiler that can produce a Windows binary for it. - Checks every result. A build only counts as a success when the output file has a valid Windows PE32+ (64-bit x86) header. A misconfigured compiler cannot hand you a Linux binary by mistake.
- Runs Windows programs.
winbridge run app.exestarts a Windows program on Linux through a Wine runtime that WinBridge downloads and manages itself. Each app gets its own isolated Windows environment, called a prefix. - Builds installers.
winbridge packageturns your build output into a Windows setup program, and can sign it. - Uses a Windows virtual machine when nothing else works. Flutter apps can only be built on Windows, so WinBridge drives a Windows VM over SSH for those. The same VM can show a Windows-only app as a window on your Linux desktop.
Supported project types
| Project | Detected by | How it is built |
|---|---|---|
| Go | go.mod | go build with GOOS=windows |
| Rust | Cargo.toml | cargo build --target x86_64-pc-windows-gnu |
| .NET | *.csproj or *.fsproj | dotnet publish -r win-x64 |
| C/C++ | CMakeLists.txt, a Makefile, or .c/.cpp files | zig cc, or MinGW-w64; MSVC ABI on request |
| Flutter | pubspec.yaml with a Flutter dependency | flutter build windows on a Windows VM |
Good to know
C/C++ support is partial. WinBridge compiles the source files in the project folder and in src/ directly. It does not run CMake or Make, so a project that only builds through one of those is reported as unsupported.
Who it is for
- Developers on Linux who ship a Windows build of a command-line tool or desktop app.
- People who want to try a Windows build on the machine they built it on, before sending it to a tester.
- Teams whose build servers run Linux.
Platforms
WinBridge 0.4.0 runs on 64-bit x86 Linux (x86_64). It is distributed as a .deb package for Debian and Ubuntu, in the Dhiva Labs PPA for Ubuntu 24.04, and as a tarball for any distribution.
WinBridge is open source under the MIT licence. Report problems on the GitHub issues page.