我需要能够构建go应用程序的不同版本;一个'调试'版本和一个正常版本。如何正确使用构建标签?
这很容易做到;我只是有一个const DEBUG,它控制着应用程序的行为,但是每次需要在构建类型之间进行交换时都必须编辑配置文件,这令人讨厌。
我念叨去构建(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 /构建/ config.go:3:DEBUG在该块(< 0>)以前 声明在SRC /构建重新声明/ config.debug.go:3
我究竟做错了什么?
是否有另外一种更合适的#ifdef风格的方式来做到这一点我应该使用?
哟,谢谢,那就是问题;编辑的问题不那么愚蠢。 – Doug 2013-03-05 03:14:29