我在 make 文件中有一个变量 VERSION
,它在编译时使用 -ldflags
设置二进制版本
VERSION = $(strip $(TIMESTAMP))
LDFLAGS = -ldflags "-X main.buildTime $(BUILD_TIME) -X main.buildNumber $(VERSION)"
现在我想获取不是 main
的包中的版本并打印它。我尝试了很多选项,但无法使其工作。
我的问题是如何将其放入包中,然后在运行时将其打印到客户端,例如 you areconnected to app version 2.0
..??
最佳答案
目录结构:
- main.go
- test/
- test.go
test.go
package test
var Version = ""
main.go
package main
import (
"fmt"
"test"
)
func main() {
fmt.Println(test.Version)
}
最后,运行:
go run -ldflags="-X test.Version 2.0.0" main.go
输出:
> 2.0.0
由于我们可以指定导入路径,因此我们可以在任何地方设置字符串的值,而不仅仅是在 main 中。
从 go 1.5 开始,语法更改为 importpath.name=string
。
关于go - 在 go 包中获取 make 文件变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31252748/