使用方法
- 构建约束以一行
+build
开始的注释。在+build
之后列出了一些条件,在这些条件成立时,该文件应包含在编译的包中;
- 约束可以出现在任何源文件中,不限于go文件;
+build
必须出现在package
语句之前,+build
注释之后应要有一个空行。
1 2 3 4 5 6 7 8 9 10
|
package main
import "fmt"
func main() { fmt.Println("Hello World!") }
|
语法规则
详细信息,可以查看go/build/build.go
文件中shouldBuild
和match
方法。
- 只允许是字母数字或_
- 多个条件之间,空格表示OR;逗号表示AND;叹号(!)表示NOT
- 一个文件可以有多个+build,它们之间的关系是AND。如:
- 预定义了一些条件:
runtime.GOOS、runtime.GOARCH、compiler(gc或gccgo)、cgo、context.BuildTags中的其他单词
- 如果一个文件名(不含后缀),以 *_GOOS, *_GOARCH, 或 *_GOOS_GOARCH结尾,它们隐式包含了 构建约束
- 当不想编译某个文件时,可以加上
// +build ignore
。这里的ignore
可以是其他单词,只是ignore
更能让人知道什么意思
构建参数