我需要能够构建不同版本的 go 应用程序;一个“调试”版本和一个正常版本。
这很容易做到;我只有一个 const DEBUG,它控制应用程序的行为,但是每次我需要在构建类型之间交换时都必须编辑配置文件很烦人。
我正在阅读有关 go build ( http://golang.org/pkg/go/build/ ) 和标签的信息,我想也许我可以这样做:
配置文件:
// +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>) 之前在 src/build/config.debug.go:3 的声明中重新声明
我究竟做错了什么?
我应该使用另一种更合适的#ifdef 风格的方式来做这件事吗?
侃侃尔雅
拉风的咖菲猫
相关分类