Читать книгу 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

Go programmieren für Dummies

Подняться наверх