gpt4 book ai didi

go - 在go包中获取make文件变量?

转载 作者:IT王子 更新时间:2023-10-29 02:05:13 25 4
gpt4 key购买 nike

我在 make 文件中有一个变量 VERSION,它在编译时使用 -ldflags 设置二进制版本

VERSION = $(strip $(TIMESTAMP))
LDFLAGS = -ldflags "-X main.buildTime $(BUILD_TIME) -X main.buildNumber $(VERSION)"

现在我想在一个不是 main 的包中获取 VERSION 并打印它。我尝试了很多选项,但无法使其正常工作。

我的问题是如何在包中获取它,然后在运行时将其打印到客户端,例如您连接到应用程序版本 2.0..??

最佳答案

目录结构:

- main.go
- test/
- test.go

test.go

package test

var Version = ""

ma​​in.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com