去条件编译问题

时间:2014-05-30 23:00:46

标签: build compiler-construction go

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

在每个人的顶部我有:

// +build production

package receivers

// +build local

package receivers

当我使用任一标签编译时("去安装-tags local",例如)相同的常量用于任一标记(即编译标记不被尊重)。如果我删除构建头文件,奇怪的是仍然编译所有内容并使用相同的常量。只有当我删除包装声明上方的所有空格("包裹接收器")时,我才会收到此块中重新声明的" _ "。

我很困惑,因为我认为我已经完成了文档为有条件构建的软件包指示的内容。我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令检查这是否是编译问题(如in this thread所述)

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

通过强制完全重新编译每个文件,标签应该可以正常工作。