Golang 中的條件編譯
您提到在 Go 中遇到條件編譯問題。以下是“// build”約束和“-tags”標誌的詳細說明,以及問題的解決方案。
「// build」約束告訴編譯器在編譯時要使用哪些建置標籤檔。在您的範例中,您對 main1.go 使用了“// build main1”,對 main2.go 使用了“// build main2”。這意味著只有在指定對應的建置標籤時才會編譯這些檔案。
要使用所需的建置標籤編譯程式碼,可以使用「-tags」標誌。例如,要僅編譯main1.go,您可以執行:
$ go build -tags main1
但是,您遇到的錯誤表明您可能遇到了一個對於Go 中的條件編譯至關重要的小細節: “/ / build XXX」行後面必須有一個空行。這沒有明確記錄,但在原始程式碼中很明顯。
這是有空行的程式碼的修改版本新增:
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") }
現在,運行「go build -tags main1" 將只編譯 main1.go,如預期。透過遵循此規則,您可以有效地在 Golang 中使用條件編譯來根據指定的建置標籤選擇性地包含或排除檔案。
以上是如何在 Go 中成功使用'// build”條件編譯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!