我们经常在使用CLI工具的时候,都会有这样的参数输出:
"color: #ff0000">实现
主要是通过ldflags参数来实现在构建的时候对变量进行赋值。
比如下面一段代码:
package main import ( "flag" "fmt" "os" ) //需要赋值的变量 var version = "" //通过flag包设置-version参数 var printVersion bool func init() { flag.BoolVar(&printVersion, "version", false, "print program build version") flag.Parse() } func main() { if printVersion { println(version) os.Exit(0) } fmt.Printf("example for print version") }构建命令:
go build -ldflags "-X main.version=v0.1" -o example程序输出:
"color: #ff0000">参数说明
1、-ldflags build命令中用于调用接链接器的参数
-ldflags '[pattern=]arg list' arguments to pass on each go tool link invocation.2、-X 链接器参数,主要用于设置变量
-X importpath.name=value Set the value of the string variable in importpath named name to value. Note that before Go 1.5 this option took two separate arguments. Now it takes one argument split on the first = sign.一个完整的例子
这里将version包单独做了一个包存放,只需要引入即可:
package main import ( "flag" "github.com/go-demo/version" ) //通过flag包设置-version参数 var printVersion bool func init() { flag.BoolVar(&printVersion, "version", false, "print program build version") flag.Parse() } func main() { if printVersion { version.PrintVersion() } }构建的shell如下(也可以放在Makefile中):
#!/bin/sh version="v0.1" path="github.com/go-demo/version" flags="-X $path.Version=$version -X '$path.GoVersion=$(go version)' -X '$path.BuildTime=`date +"%Y-%m-%d %H:%m:%S"`' -X $path.GitCommit=`git rev-parse HEAD`" go build -ldflags "$flags" -o example example-version.goTIPS: 如果值内容中含有空格,可以用单引号
最终版本输出:
"external nofollow" target="_blank" href="https://github.com/go-demo/version">https://github.com/go-demo/version以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年05月20日
2024年05月20日
- 林一峰2017-绝对清白2CD[香港首版][WAV+CUE
- 石凯《数星一整夜》[320K/MP3][44.18MB]
- 石凯《数星一整夜》[24bit 48kHz][FLAC/分轨][395.49MB]
- 邰正宵《重燃爱恋 贰 Walk On》[320K/MP3][158.71MB]
- 林一峰2003-床头歌[华纳][WAV+CUE]
- 张琍敏1983-又见牵手[台湾留声复刻版][WAV+CUE]
- 张琍敏1978-雪中莲[台湾复刻版][WAV+CUE]
- 叶蕴仪1993-睡美人[日本版][WAV+CUE]
- 夜晚助兴音乐-群星《新时代床头音乐-性能量》2CD[WAV]
- 24K德国HD金碟《历届奥斯卡获奖金曲》3CD[WAV整轨]
- 邰正宵《重燃爱恋 贰 Walk On》[FLAC/分轨][431.72MB]
- 苏文劭《雨停出来走走》[320K/MP3][81.11MB]
- 苏文劭《雨停出来走走》[FLAC/分轨][210.76MB]
- 群星《2024好听新歌04》十倍音质WAV分轨
- 陈宁《弹指之间HQ》头版限量[低速原抓WAV+CUE]