Heim  >  Artikel  >  Backend-Entwicklung  >  Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die plattformübergreifende Golang-Kompilierung implementieren

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die plattformübergreifende Golang-Kompilierung implementieren

Go语言进阶学习
Go语言进阶学习nach vorne
2023-07-20 16:13:36602Durchsuche

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 sofort und auf eine Weise mit hoher Parallelität bereitgestellt. Wenn Sie ehrgeiziger sind, ist dies nicht der Fall. Ich brauche nicht einmal Nginx, aber machen Sie sich überhaupt 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

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die plattformübergreifende Golang-Kompilierung implementieren

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

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die plattformübergreifende Golang-Kompilierung implementieren

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

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die plattformübergreifende Golang-Kompilierung implementieren

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

Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die plattformübergreifende Golang-Kompilierung implementieren

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 vonBringen Sie Ihnen Schritt für Schritt bei, wie Sie die plattformübergreifende Golang-Kompilierung implementieren. 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