Jak prawidłowo używać tagów budowania?

Muszę mieć możliwość tworzenia różnych wersji aplikacji go; wersja „debugująca” i wersja normalna.

Jest to łatwe do zrobienia; Po prostu mam const DEBUG, który kontroluje zachowanie aplikacji, ale denerwujące jest to, że muszę edytować plik konfiguracyjny za każdym razem, gdy muszę się przełączać między typami kompilacji.

Czytałem o budowaniu go (http://golang.org/pkg/go/build/) i tagi, myślałem, że mógłbym to zrobić:

config.go:

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

config.debug.go:

// +build debug
package build
const DEBUG = true

Wtedy powinienem być w stanie zbudować używając „go build” lub „go build -tags debug”, a tagi powinny wykluczać config.go i zawierać config.debug.go.

... ale to nie działa. Dostaję:

src / build / config.go: 3: DEBUG zmieniony w tym bloku (<0>) poprzednia deklaracja w src / build / config.debug.go: 3

Co ja robię źle?

Czy jest inny i bardziej odpowiedni styl #ifdef, który powinienem zrobić?

questionAnswers(2)

yourAnswerToTheQuestion