【Go】条件编译

条件编译

在文件开始的位置package语句之前,使用// +build可以添加编译标签,以满足不同场景不同编译的需求

/a/hello_dev.go

// +build dev

package a

import "fmt"

func Hello() {
	fmt.Println("hello dev")
}

/a/hello_www.go

// +build www

package a

import "fmt"

func Hello() {
	fmt.Println("hello www")
}

/main.go

package main

import "lg/a"

func main() {
	a.Hello()
}

编译

go build -tags dev

Goland设置

设置tags,避免编译器报错

image-20221120162911132

指定tags运行

image-20221120163046335

其他

  • 文件名以_linux结尾,表示要设置linux环境才能编译(windows以及darwin亦是如此)

  • 多标签:一个源码文件可以包含多个构建标签。构建标签遵循以下三个原则:

    1. 空格隔开的选项是或(OR)的关系
    2. 逗号隔开的选项是与(AND)的关系
    3. 每个选项由字母和数字组成。如果前面加上!,则表示反义
  • //go:build是 Go 1.17 中引入的新条件编译指令格式。它旨在替换// +build

    • 为何要采用新的格式呢?对比一下新旧格式的区别就知道了:

    • //go:build linux && amd64 || darwin
      // +build linux,amd64 darwin
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值