Go の条件付きコンパイルでのコンパイル エラーの解決
Go の条件付きコンパイルを使用すると、開発者は特定の条件に基づいてパッケージを選択的にコンパイルできます。この機能を利用するには、ソース コード内で // build 制約を使用し、その後に build タグを続けます。ただし、同じ main 関数を含む複数のパッケージで条件付きコンパイルを試行すると、一般的な問題が発生します。
この例では、2 つのパッケージ (main1.go と main2.go) がそれぞれ main 関数を定義しています。 go build を実行するときに、-tags フラグを指定してパッケージの 1 つだけをコンパイルすると、main 関数の再定義に関連するコンパイル エラーが発生します。
解決策は、// build の構文に従うことです。制約。コンパイラがビルド タグを認識できるように、その後に空行を続ける必要があります。これにより、コンパイラがビルド タグを正しく解析し、目的のパッケージのみをコンパイルすることが保証されます。
各 // ビルド制約の後に空行を追加することで、コンパイル エラーを回避し、目的のパッケージを正常にビルドできます。
// +build main1 package main import ( "fmt" ) func main() { fmt.Println("This is main 1") } // +build main2 package main import ( "fmt" ) func main() { fmt.Println("This is main 2") }
ここで go build -tags 'main1' を実行すると、main1.go のみがコンパイルされて実行されます。同様に、 go build -tags 'main2' は main2.go のみをビルドして実行します。
以上が条件付きコンパイルで複数の「main」関数が原因で発生する Go コンパイル エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。