Heim  >  Artikel  >  Backend-Entwicklung  >  Implementieren Sie die plattformübergreifende Golang-Kompilierung

Implementieren Sie die plattformübergreifende Golang-Kompilierung

Go语言进阶学习
Go语言进阶学习nach vorne
2023-07-21 10:03:391101Durchsuche

Plattformübergreifende Kompilierung

Plattformübergreifende Kompilierung, auch Cross-Compilation genannt, ich kann es auf der Win-Plattform in eine ausführbare Datei auf der Linux-Plattform kompilieren.

Dies ist auch der Grund, warum Go so beliebt ist. Für Sprachen wie Java, Python, PHP usw. entwickeln wir normalerweise auf der Win-Plattform und stellen sie unter Linux bereit Der Umgang mit Abhängigkeiten von Drittanbietern ist nicht nur ermüdend, sondern auch der Betrieb und die Wartung. Obwohl Docker dieses Problem jetzt löst, sollte es immer noch nicht so komfortabel sein wie ursprünglich.

Wenn Sie Go verwenden, wird es unabhängig von den Abhängigkeiten von Drittanbietern nur in eine ausführbare Datei gepackt und direkt und mit hoher Parallelität bereitgestellt. Egal wie groß Ihr Herz ist Ich brauche nicht einmal Nginx, aber mach dir keine Sorgen über Parallelitätsprobleme.


Beispiel

wird in eine ausführbare Datei der Linux-Plattform auf der Win-Plattform kompiliert. Führen Sie unter cmd nacheinander folgende Befehle aus:

SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=linux  // 目标平台是linux
SET GOARCH=amd64  // 目标处理器架构是amd64

Implementieren Sie die plattformübergreifende Golang-Kompilierung

然后执行go build,得到的就是能够在linux上,可执行的文件。

Implementieren Sie die plattformübergreifende Golang-Kompilierung

我现在将这个文件上传到我的云服务器上,如下图所示。

Implementieren Sie die plattformübergreifende Golang-Kompilierung

之后执行,可以看到,我云服务器上连Go环境都没,但是仍然可以执行成功。

Implementieren Sie die plattformübergreifende Golang-Kompilierung

Windows下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

Mac 下编译 Linux 和 Windows平台 64位 可执行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux 下编译 Mac 和 Windows 平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Das obige ist der detaillierte Inhalt vonImplementieren Sie die plattformübergreifende Golang-Kompilierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Go语言进阶学习. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen