我正在使用Go 1.9.2创建一个应用,并且试图ldflags -X在构建过程中使用选项向其添加版本字符串变量。
ldflags -X
我已经通过使用:Version在main包中设置了一个变量-ldflags "-X main.Version=1.0.0",但是我真正需要的是Version在config包中而不是在main其中设置变量。这可能吗?
Version
main
-ldflags "-X main.Version=1.0.0"
config
这是我的构建命令:
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,则使用以下命令:
$GOPATH/src/my/package/config
go build -ldflags "-X my/package/config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)