作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在使用 Go 1.9.2 创建一个应用程序,并尝试在构建期间使用 ldflags -X
选项向其添加版本字符串变量。
我已经设法在我的 main
包中设置了一个 Version
变量,方法是:-ldflags "-X main.Version=1.0.0"
,但是我真正需要的是在我的 config
包中设置 Version
变量而不是 main
变量。这可能吗?
这是我的构建命令:
去构建 -ldflags "-X config.Version=1.0.0"-o $(MY_BIN) $(MY_SRC)
最佳答案
引自 Command link 的文档:
-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.
所以它可以用于任何包,而不仅仅是 main
包。但您必须指定完整的导入路径,而不仅仅是包名。
例如如果您的 config
包位于 $GOPATH/src/my/package/config
,则使用以下命令:
go build -ldflags "-X my/package/config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)
关于go - 如何在 Golang 构建中使用 -ldflags -X 设置包变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47509272/
我是一名优秀的程序员,十分优秀!