Мне нужно иметь возможность создавать разные версии приложения go; версия отладки и нормальная версия.
Это легко сделать; У меня просто есть константа 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: DEBUG обновлен в этом блоке (< 0 > ) previous Объявление в src/build/config.debug.go: 3
Что я делаю неправильно?
Есть ли еще один и более подходящий способ стиля #ifdef, который я должен использовать?