go-条件编译
这是常用操作,数据库的相关配置信息,debug 和 release 下面的配置信息是不同的。
还有其他不一样的信息。可以通过条件编译来实现。
初步调研了一下有两种方式:
通过ldflags设置变量
这个方式是通过编译参数来设置初始变量的值。
go build -ldflags "-X main.VERSION=1.0.0 -X 'main.BUILD_TIME=`date`' -X 'main.GO_VERSION=`go version`'" |
goland设置参考如下:
通过-tags的方式
这个目前还没好用,不知道问题在哪里,空行也有了,但是还是提示重复声明 redeclared in this block
类似编译宏定义。
在文件的第一行,注意和 package 之间有个空行。下面表示支持在 osx linux 下面编译
// +build darwin linux !debug |
go build -tags "debug"