Build go条件编译问题

Build go条件编译问题,build,compiler-construction,go,Build,Compiler Construction,Go,我有两个文件,production_constants.go和local_constants.go在同一个包中 在每一页的顶部,我有: // +build production package receivers 及 当我使用任何一个标记进行编译时(“go install-tags local”,例如),对任何一个标记都使用相同的常量(即编译标记不受尊重)。如果我删除构建头,奇怪的是,所有内容都会编译,并且使用相同的常量。只有当我删除包声明(“包接收者”)上方的所有空间时,我才会收到“u在此

我有两个文件,production_constants.go和local_constants.go在同一个包中

在每一页的顶部,我有:

// +build production

package receivers

当我使用任何一个标记进行编译时(“go install-tags local”,例如),对任何一个标记都使用相同的常量(即编译标记不受尊重)。如果我删除构建头,奇怪的是,所有内容都会编译,并且使用相同的常量。只有当我删除包声明(“包接收者”)上方的所有空间时,我才会收到“u在此块中重新声明”


我感到困惑,因为我认为我已经完成了文档中为有条件构建的包所指示的工作。我是否遗漏了一些明显的内容?

您可以通过以下方式检查这是否是编译问题(如前所述):

通过强制对每个文件进行完全重新编译,标记应该可以工作

// +build local

package receivers
go clean -i receivers
# or
go install -a -tags local