Golang编译时添加属性信息
在编译golang源代码的时候,我们有时候希望把版本、编译时间等等的信息添加到目标文件中,这些信息不应该在源代码中写死,而是应该在编译时再写入。golang中我们在编译时可以使用-ldflags编译选项来添加一些信息,这些信息会被写入到目标文件中。
我们先实现如下的一个golang源程序:
| 1 | package main | 
在上面的源代码中我们定义了三个变量
- buildStamp
- version
- goVersion
我们使用 --version 或者 -v 选项时可以打印出这三个变量,如果我们直接使用 go build main.go 编译源代码,则执行程序打印结果都是空值。
我们可以使用如下脚本来编译此程序,脚本中我们通过 -ldflags 选项修改变量的值
| 1 | !/usr/bin/env bash | 
编译完之后我们执行 ./main -v 可以得到如下结果
Build TimeStamp : 2019-05-28 16:54:02
Version         : v1.0.0
Go Version      : go version go1.11.5 darwin/amd64
我们这样就可以把编译时的信息写入到目标程序中去了。
参考:https://ms2008.github.io/2018/10/08/golang-build-version/
本文链接: https://www.nosuchfield.com/2019/05/28/Add-attribute-information-when-Golang-compiles/
版权声明: 本博客所有文章均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!