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 许可协议,转载请注明出处!