Sind Golang binaries portable?
Nehme an, ich bin hauptsächlich Linux user, aber ich entwickle eine Anwendung in Gehen, ich will cross-Plattform. Ich habe gesucht um, aber ich kann nicht scheinen, Informationen zu finden, zu entbinden die folgenden:
- Wenn ich
go install
eine binäre auf meinem amd64 Ubuntu-system, wird es auch arbeiten auf jemand anderes 64-bit-Ubuntu/Debian-system? - Wie kann ich
go install
zu bauen, um eine x86_64-binary, die auch out-of-the-box auf 32-bit-Debianlikes? - Wenn es sein muss, verwenden Sie Windows, um eine Binärdatei, die auf Windows laufen, wie kann ich auch dafür sorgen, dass selbst wenn mein Windows-system ist 64-bit die ausführbare Datei erstellt werden, für x86_64?
Meine Fragen in der Wirkung einkochen, "wie static/portable go' s linker/compiler?"
- Ich bin mir nicht sicher, was Sie Fragen. Binär-Dateien sind portabel zwischen verschiedenen Systemen mit dem gleichen OS und Architektur. Gehen Sie baut den binären für Ihre host-GOOS und GOARCH sofern Sie nichts anderes angeben. Sie können nicht nehmen Sie eine 64bit Version und führen Sie es auf einem 32bit system.
- Das war nicht meine Erfahrung mit dem erstellen von Binärdateien, die gemeint sind, um cross-Plattform.
- Um deine Frage zu beantworten: "gar Nicht." Einfach, weil diese unmöglich ist, zu tun. Kein compiler/linker/loader/toolchain kann dies tun. Google cross-compilation-das ist trivial mit Gehen.
- Wenn das hans nicht deine Erfahrung, dann brauchen Sie, um uns zu zeigen das problem. Die Frage "wie static/portable go' s linker/compiler?" macht nicht viel Sinn.
- Off-topic. Dieses tool einfach Ihr Leben github.com/mitchellh/gox
Du musst angemeldet sein, um einen Kommentar abzugeben.
GOOS
undGOARCH
Umgebungsvariablen vor dem Gebäude:GOOS=windows GOARCH=386 go build
(odergo install
oder was auch immer), etc