You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+14-1
Original file line number
Diff line number
Diff line change
@@ -100,9 +100,22 @@ func main() {
100
100
}
101
101
```
102
102
103
+
For more complete examples, see inside the _examples_ folder. Run any of the .go files with `go run`.
103
104
104
105
105
-
For more complete examples, see inside the _examples_ folder. Run any of the .go files with `go run`.
106
+
Cross-compiling
107
+
===============
108
+
109
+
### Linux to Windows
110
+
111
+
1. Install MinGW toolchain.
112
+
* On **Arch Linux**, it's simply `pacman -S mingw-w64`.
113
+
2. Download the SDL2 development package for MinGW [here](http://libsdl.org/download-2.0.php).
114
+
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.
115
+
* On **Arch Linux**, it's `cp -r x86_64-w64-mingw32 /usr`.
116
+
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.
117
+
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.
118
+
6. Now you should be able to run the program using Wine or Windows!
0 commit comments