Skip to content

Commit

Permalink
README.md: Add cross-compiling guide for Linux to Windows
Browse files Browse the repository at this point in the history
Signed-off-by: Lilis Iskandar <[email protected]>
  • Loading branch information
veeableful committed Nov 27, 2017
1 parent e322b42 commit 0da67c0
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,22 @@ func main() {
}
```

For more complete examples, see inside the _examples_ folder. Run any of the .go files with `go run`.


For more complete examples, see inside the _examples_ folder. Run any of the .go files with `go run`.
Cross-compiling
===============

### Linux to Windows

1. Install MinGW toolchain.
* On **Arch Linux**, it's simply `pacman -S mingw-w64`.
2. Download the SDL2 development package for MinGW [here](http://libsdl.org/download-2.0.php).
3. Extract the SDL2 development package and copy the `x86_64-w64-mingw32` folder inside recursively to the system's MinGW `x86_64-w64-mingw32` folder. You may also do the same for the `i686-w64-mingw32` folder.
* On **Arch Linux**, it's `cp -r x86_64-w64-mingw32 /usr`.
4. Now you can start cross-compiling your Go program by running `env CGO_ENABLED="1" CC="/usr/bin/x86_64-w64-mingw32-gcc" GOOS="windows" CGO_LDFLAGS="-lmingw32 -lSDL2" CGO_CFLAGS="-I/usr/x86_64-w64-mingw32/include/SDL2 -D_REENTRANT" go build -x main.go`. You can change some of the parameters if you'd like to. In this example, it should produce a `main.exe` executable file.
5. Before running the program, you need to put `SDL2.dll` from the [SDL2 runtime package](http://libsdl.org/download-2.0.php) for Windows in the same folder as your executable.
6. Now you should be able to run the program using Wine or Windows!

FAQ
===
Expand Down

0 comments on commit 0da67c0

Please sign in to comment.