2022-04-29 Goで特定の環境向けのビルドのときだけ取り込むソースを指定する goはビルド時の環境変数の設定で異なる環境向けのバイナリを生成できるのだが、開発環境ではWindowsやLinuxを使っていて、実行環境はLinuxということがあり、Linux向けのバイナリだけsyslogを使いたくなった。 そんなときはbuild constraintという機能を使うと解決できる。 ファイルの冒頭(package宣言より前)に //go:build linux とかくとそのファイルはLinux向けのビルドのときにしか取り込まれなくなる。 windows向けだったらwindows、mac向けだったらdarwinなどと書く。 アーキテクチャの指定も可能。