Читать книгу Go programmieren für Dummies - Wei-Meng Lee - Страница 24
Kompilieren von Programmen für mehrere Betriebssysteme
ОглавлениеBei der Installation von Go werden automatisch mehrere Go-Umgebungsvariablen eingerichtet, damit Ihre Go-Programme korrekt funktionieren. Insbesondere erkennt das Installationsprogramm bestimmte Werte der Host-Architektur und des genutzten Betriebssystems, die für die Umgebungsvariablen GOHOSTARCH
beziehungsweise GOHOSTOS
nötig sind. Die Werte dieser zwei Variablen geben die Zielplattform an, für die Ihre Programme kompiliert werden.
Wenn Sie sich diese Werte der Go-Umgebungsvariablen anzeigen lassen möchten, nutzen Sie den Befehl env
:
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/weimenglee/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
…
…
PKG_CONFIG="pkg-config"
Um Ihr Programm für ein anderes Betriebssystem zu kompilieren, müssen Sie zwei weitere Umgebungsvariablen anpassen: GOOS
und GOARCH
. Diese beiden Variablen konfigurieren das Ziel-Betriebssystem anhand der in Tabelle 1.1 gezeigten Werte.
Betriebssystem | GOOS | GOARCH |
---|---|---|
macOS | darwin | amd64 |
Linux | linux | amd64 |
Windows | windows | amd64 |
Tabelle 1.1: Umgebungsvariablen für verschiedene Betriebssysteme
Um ein Programm für macOS zu kompilieren, nutzen Sie die folgenden Befehle und Optionen:
$ GOOS=darwin GOARCH=amd64 go build -o Kapitel_1-mac
Wenn Go in naher Zukunft nativ auf Apple Silicon portiert wird, wäre der Wert von GOARCH
entsprechend arm64
.
Um ein Programm für Windows OS zu kompilieren, sind folgende Befehle und Optionen nötig:
$ cd ~/"Kapitel 1"
$ GOOS=windows GOARCH=amd64 go build -o Kapitel_1-windows.exe
Über die Option -o
(kurz für Output) können Sie einen Namen für die ausführbare Datei angeben.
Der vorgenannte Befehl kompiliert das Paket im Verzeichnis Kapitel 1
für Windows und speichert die ausführbare Datei als Kapitel_1-windows.exe
.
Um ein Programm für Linux zu kompilieren, nutzen Sie folgende Befehle und Optionen:
$ GOOS=linux GOARCH=amd64 go build -o Kapitel_1-linux
Falls Sie mit Go auf dem Raspberry Pi arbeiten, nutzen Sie für GOARCH
den Wert arm64
.
Wenn auf Ihrem Computer macOS oder Linux läuft, können Sie die für die jeweilige Plattform erstellten ausführbaren Dateien mit dem file
-Befehl überprüfen:
$ file Kapitel_1-mac
Kapitel_1-mac: Mach-O 64-bit executable x86_64
$ file Kapitel_1-windows.exe
Kapitel_1-windows.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
$ file Kapitel_1-linux
Kapitel_1-linux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=bSETwZgNDR5vlulRHnzw/KNpENRt9Hipd8Nu7HGDg/v38ZPzDs35yMw33hUxoz/Y_cNfU8fID2cCtz36hCq, not stripped