README.md: Add cross-compiling guide for Linux to Windows
@@ -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
===
