您的位置 首页 golang

golang进阶之条件编译

一、标签编译

在源代码里添加标注,通常称之为编译标签(build tag)。编译标签采用靠近源代码文件顶部用注释的方式添加。go build在构建一个包的时候会读取这个包里的每个源文件并且分析编译便签,这些标签决定了这个源文件是否参与本次编译。

1.编译标签由 空格分隔 的编译选项(options) 以逻辑”或” 的关系组成(a build tag is evaluated as the OR of space-separated options)。

2.每个编译选项由 逗号分隔 的条件项 以逻辑”与” 的关系组成( each option evaluates as the AND of its comma-separated terms)

3.每个条件项的名字用字母+数字表示, 在前面加!表示否定 的意思(each term is an alphanumeric word or, preceded by !, its negation)

注:一个源文件可以有多个编译标签, 多个编译标签之间是逻辑“与”的关系 ,一个编译标签可以包括由空格分割的多个标签,这些标签是逻辑“或”的关系。例子:

// +build linux darwin

// +build 386

这个将限制此源文件只能在 linux/386或者darwin/386平台下编译

二、 文件名后缀 编译

1.如果文件名以”_$GOOS.go”作为后缀,则将与$GOOS相同的平台会被编译。

2.如果文件名以”_$GOARCH.go”作为后缀,则将在cpu架构与$GOARCH相同的平台会编译此源代码文件。

3.$GOOS与$GOARCH可同时作为后缀,但必须是”_$GOOS_$GOARCH.go”,不能是”_$GOARCH_$GOOS.go”。

4.不能只使用后缀作为文件名,没有其它内容作为文件名的一部分,否则此文件编译时会被忽略掉。

三、标签编译使用

1.使用条件标签运行:go run -tags=linux main.go

2.使用条件标签编译:go build -tags=linux main.go

文章来源:智云一二三科技

文章标题:golang进阶之条件编译

文章地址:https://www.zhihuclub.com/88607.shtml

关于作者: 智云科技

热门文章

网站地图