Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Go-Quelldateien basierend auf der Zielarchitektur ausschließen?

Wie kann ich Go-Quelldateien basierend auf der Zielarchitektur ausschließen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 01:42:01906Durchsuche

How to Exclude Go Source Files Based on Target Architecture?

Go-Quelldateien nach Architektur beim Kompilieren ausschließen

In Go ist es gelegentlich erforderlich, bestimmte Quelldateien beim Kompilieren basierend auf der Zielarchitektur auszuschließen. Wenn Sie beispielsweise ein Programm für Windows entwickeln, das CGo zur Interaktion mit nativen Funktionen verwendet, kann das Kompilieren unter Linux zu Abhängigkeitsproblemen führen, z. B. fehlenden Header-Dateien.

Um dieses Problem zu beheben, verwendet Go Build-Einschränkungen, die dies ermöglichen Entwickler können die Bedingungen angeben, unter denen eine Datei in das Paket aufgenommen werden soll. Durch die Nutzung von Build-Einschränkungen können Sie bestimmte Quelldateien basierend auf der Zielarchitektur ausschließen.

Architekturabhängige Einschränkungen angeben:

Um eine bestimmte Architektur von der Kompilierung auszuschließen, verwenden Sie die folgende Syntax:

// +build !<architecture>

Um beispielsweise die 64-Bit-x86-Architektur auszuschließen:

// +build !amd64

Alternativ können Sie mehrere auszuschließende Architekturen mithilfe von Kommas angeben:

// +build !amd64,!arm64

Hierarchische Einschränkungen verwenden:

Bei komplexen Bedingungen können Sie hierarchische Einschränkungen anwenden:

// +build linux
// +build amd64

// +build solaris
// +build 386,!go1.12

Diese Hierarchie zeigt, dass für den ersten Satz von Einschränkungen Sowohl Linux als auch amd64 müssen erfüllt sein, während im zweiten Satz Solaris erforderlich ist und entweder 386 oder Go-Version vor 1.12 erfüllt werden kann.

Ausschluss durch Dateibenennung:

Zusätzlich zu Build-Einschränkungen können Sie Dateien basierend auf ihren Namenskonventionen ausschließen:

  • Dateien mit dem Namen *_GOOS werden beim Erstellen für ein anderes Betriebssystem ausgeschlossen.
  • Dateien mit dem Namen *_GOARCH werden ausgeschlossen, wenn für eine andere Architektur erstellt wird.
  • Dateien mit dem Namen *_GOOS_GOARCH werden ausgeschlossen, wenn für eine andere Betriebssystem- und Architekturkombination erstellt wird.

Beispiel:

Um eine Quelldatei mit dem Namen „windows.c“ beim Erstellen unter Linux auszuschließen, fügen Sie die folgende Build-Einschränkung am Anfang der Datei ein:

// +build ignore

Alternativ können Sie die Datei in „windows_windows.c“ umbenennen .

Durch die Verwendung von Build-Einschränkungen und Dateinamenskonventionen können Sie beim Kompilieren von Go-Programmen bestimmte Quelldateien basierend auf der Zielarchitektur effektiv ausschließen und so maßgeschneiderte Builds für verschiedene Umgebungen ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann ich Go-Quelldateien basierend auf der Zielarchitektur ausschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn