Wie führe ich Cross-Kompilierung eines Go-Programms auf macOS durch?
Schritt-für-Schritt-Lösung für Cross-Kompilierung in Go auf macOS
Sie sind auf dem richtigen Weg! Go hat tatsächlich integrierte Unterstützung für Cross-Kompilierung. Der Befehl `GOOS=linux GOARCH=amd64 go build main.go` ist grundsätzlich korrekt, aber es gibt einige häufige Fallstricke. Stellen Sie sicher, dass Sie im richtigen Verzeichnis sind (wo main.go liegt) und dass Ihr Modul korrekt initialisiert ist (z.B. mit `go mod init meinmodul`). Der Fehler "cannot find package" tritt oft auf, wenn Sie nicht im Modulverzeichnis sind oder wenn Sie `go build` ohne Angabe der Datei ausführen. Versuchen Sie stattdessen `GOOS=linux GOARCH=amd64 go build -o meinprogramm .` (mit Punkt für das aktuelle Paket). Für einfache Programme ohne C-Abhängigkeiten benötigen Sie keine zusätzlichen Tools. Wenn Sie CGo verwenden, müssen Sie `CGO_ENABLED=0` setzen. Ihr Code sollte ohne Probleme funktionieren. Überprüfen Sie nach dem Build die Binary mit `file meinprogramm` unter Linux, um sicherzustellen, dass es eine ELF-Datei ist.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs