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ć?