Wie kompiliere ich ein Go-Programm auf Linux zu einer ausführbaren Windows-Datei?
Du kannst Code, der in Go geschrieben ist, einfach für Windows, macOS und Linux überquerkompilieren, indem du die Umgebungsvariablen ```GOARCH``` und ```GOOS``` verwendest. Diese repräsentieren die Kompilierungsarchitektur und den Namen des Zielbetriebssystems. Sie sind standardmäßig auf deine Kompilierungsarchitektur (```GOHOSTARCH```) und dein Betriebssystem (```GOHOSTOS```) eingestellt. Du musst diese Werte ändern, um für Windows anstelle von Linux zu kompilieren.

Hier ist der Befehl, den du ausführen musst, um dein Go-Projekt für eine 64-Bit-Windows-Maschine zu kompilieren:
```
$ GOOS=windows GOARCH=amd64 go build -o bin/app-amd64.exe app.go
```
In diesem Szenario ist ```GOOS``` windows und ```GOARCH``` amd64, was auf eine 64-Bit-Architektur hinweist. Der Befehl ```go build -o bin/app-amd64.exe app.go``` kompiliert app.go zu einer .exe-Datei, die mit 64-Bit-Versionen von Windows kompatibel ist. Wenn du eine 32-Bit-Architektur unterstützen musst, musst du ```GOARCH``` auf 386 ändern.
```
$ GOOS=windows GOARCH=386 go build -o bin/app-386.exe app.go
```
Nachdem du dein Go-Programm für Windows kompiliert hast, ist es eine gute Idee, diese Werte zurückzusetzen, damit du wieder für Linux kompilieren kannst.
```
# 64-Bit
$ GOOS=linux GOARCH=amd64 go build -o bin/app-amd64-linux app.go

# 32-Bit
$ GOOS=linux GOARCH=386 go build -o bin/app-386-linux app.go
```
Ich hoffe, ich habe deine Frage beantwortet. Lass mich wissen, wenn ich dir bei etwas anderem helfen kann!