Heim >Backend-Entwicklung >Golang >Wie kann ich die bedingte Kompilierung mit „// build' in Go erfolgreich nutzen?
Bedingte Kompilierung in Golang
Sie haben erwähnt, dass bei der bedingten Kompilierung in Go ein Problem aufgetreten ist. Hier finden Sie eine detaillierte Erklärung der „// build“-Einschränkung und des „-tags“-Flags sowie eine Lösung für Ihr Problem.
Die „// build“-Einschränkung teilt dem Compiler mit, welche Build-Tags beim Kompilieren verwendet werden sollen die Datei. In Ihrem Beispiel haben Sie „// build main1“ für main1.go und „// build main2“ für main2.go verwendet. Dies bedeutet, dass diese Dateien nur kompiliert werden, wenn das entsprechende Build-Tag angegeben ist.
Um Ihren Code mit dem gewünschten Build-Tag zu kompilieren, können Sie das Flag „-tags“ verwenden. Um beispielsweise nur main1.go zu kompilieren, können Sie Folgendes ausführen:
$ go build -tags main1
Der Fehler, auf den Sie stoßen, deutet jedoch darauf hin, dass Sie möglicherweise auf ein kleines Detail gestoßen sind, das für die bedingte Kompilierung in Go entscheidend ist: Sie Auf die Zeile „// build XXX“ muss eine Leerzeile folgen. Dies ist nicht explizit dokumentiert, aber im Quellcode ersichtlich.
Hier ist eine modifizierte Version Ihres Codes mit der hinzugefügten Leerzeile:
main1.go
// +build main1 package main import ( "fmt" ) func main() { fmt.Println("This is main 1") }
main2.go
// +build main2 package main import ( "fmt" ) func main() { fmt.Println("This is main 2") }
Jetzt, Wenn Sie „go build -tags main1“ ausführen, wird erwartungsgemäß nur main1.go kompiliert. Wenn Sie diese Regel befolgen, können Sie die bedingte Kompilierung in Golang effektiv nutzen, um Dateien basierend auf den angegebenen Build-Tags selektiv einzuschließen oder auszuschließen.
Das obige ist der detaillierte Inhalt vonWie kann ich die bedingte Kompilierung mit „// build' in Go erfolgreich nutzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!