ビルドタグを適切に使用するにはどうすればいいですか? [重複] 質問する

ビルドタグを適切に使用するにはどうすればいいですか? [重複] 質問する

Go アプリケーションの異なるバージョン (「デバッグ」バージョンと通常バージョン) をビルドできる必要があります。

これは簡単に実行できます。アプリケーションの動作を制御する const DEBUG を用意するだけですが、ビルド タイプを切り替える必要があるたびに構成ファイルを編集する必要があるのは面倒です。

私はgo buildについて読んでいました(http://golang.org/pkg/go/build/) とタグを使って、おそらく次のようにできると思いました:

config.go:

// +build !debug
package build
const DEBUG = false

config.debug.go:

// +build debug
package build
const DEBUG = true

go buildすると、または を使用してビルドできるようになりgo build -tags debug、タグにはconfig.goが含まれなくなりますconfig.debug.go

...しかし、これは機能しません。次のようになります:

src/build/config.go:3: このブロック (<0>) で DEBUG が再宣言されました。以前の宣言は src/build/config.debug.go:3 にあります。

何が間違っているのでしょうか?

これを行うために使用すべき別の、より適切な #ifdef スタイルの方法はありますか?

ベストアンサー1

見る別の質問に対する私の答え行の後に空白行が必要です// +build

また、おそらく!config.debug.go ではなく config.go 内が必要であり、おそらく「DEBUG = false」にする必要があるでしょう。

おすすめ記事