我有两个文件,production_constants.go和local_constants.go在同一个包中。
在每一个的顶端我都有:
// +build production
package receivers
和
// +build local
package receivers
当我使用任一标记(例如,“go install -tags local”)进行编译时,对这两个标记使用相同的常量(即编译标记不受尊重)。如果删除构建标头,奇怪的是,所有内容仍然编译,并且使用相同的常量。只有当我删除包声明("package“)上面的所有空格时,我才会收到”在此块中重新声明的___“。
我感到困惑,因为我认为我已经完成了文档为有条件构建的包所指示的内容。我是不是漏掉了什么明显的东西?
发布于 2014-05-31 10:30:07
您可以使用以下方法检查这是否是编译问题(如前面提到的在这个线程中):
go clean -i receivers
# or
go install -a -tags local
通过强制对每个文件进行完全重新编译,这些标记应该可以工作。
https://stackoverflow.com/questions/23968248
复制相似问题