我需要能够构建不同版本的 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 redeclared in this block (<0>) previous declaration at src/build/config.debug.go:3
我做错了什么?
我应该使用另一种更合适的#ifdef 风格的方法吗?
最佳答案
见 my answer to another question . //+build
行之后需要一个空行。
另外,您可能需要 config.go 中的 !
,而不是 config.debug.go;大概你想要一个“DEBUG = false”。
https://stackoverflow.com/questions/15214459/
相关文章:
eclipse - 项目 XXX 在其构建路径上没有任何 GWT SDK
Android Studio - 错误 :Program type already present
java - 构建失败 java.lang.OutOfMemoryError : Java heap
ruby - 安装 Xcode 4.2 后无法使用 native 扩展构建 json (1.6.3)
c++ - 在一个 Eclipse 项目中构建多个二进制文件
android - 使用 log4j 更新 Android Studio 后 gradle 构建出错