【发布时间】:2013-03-05 01:51:53
【问题描述】:
我需要能够构建不同版本的 go 应用程序;一个“调试”版本和一个普通版本。
这很容易做到;我只是有一个 const 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 在 src/build/config.debug.go:3 处声明
我做错了什么?
我应该使用另一种更合适的#ifdef 风格的方法吗?
【问题讨论】:
-
查看 below 了解 Go 1.17 的更新