我需要能够构建go应用程序的不同版本;"调试"版本和正常版本.
这很容易做到;我只有一个const调试,它控制应用程序的行为,但是每次需要在构建类型之间切换时都必须编辑配置文件,这很烦人.
我在读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 redeclared in this block (<0>) previous declaration at src/build/config.debug.go:3
我做错了什么?
我是否应该使用另一种更合适的#ifdef风格的方法?