如何在Golang构建中使用-ldflags -X设置软件包变量
我正在使用Go 1.9.2创建一个应用,并且试图ldflags -X
在构建过程中使用选项向其添加版本字符串变量。
我已经通过使用:Version
在main
包中设置了一个变量-ldflags "-X
main.Version=1.0.0",但是我真正需要的是Version
在config
包中而不是在main
其中设置变量。这可能吗?
这是我的构建命令:
go build -ldflags "-X config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)
回答:
引用命令链接文档:
-X importpath.name =值
将名为name的importpath中的字符串变量的值设置为value。
请注意,在Go 1.5之前,此选项采用两个单独的参数。
现在,需要在第一个=符号上拆分一个参数。
因此,它可以用于任何包装,而不仅仅是main
包装。但是您必须指定完整的 导入路径 ,而不仅仅是软件包名称。
例如,如果您的config
软件包位于$GOPATH/src/my/package/config
,则使用以下命令:
go build -ldflags "-X my/package/config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)
以上是 如何在Golang构建中使用-ldflags -X设置软件包变量 的全部内容, 来源链接: utcz.com/qa/416448.html