Golang Build 中使用 -ldflags -X 设置包变量
使用 go build 命令构建 Go 应用时,开发者可以设置包变量使用 -ldflags -X 选项。这种技术通常用于将版本字符串、配置值或其他元数据注入到编译的二进制文件中。
但是,如果可以在特定包而不是主包中设置包变量,就会出现问题。这是如何实现的:
-X 标志的文档明确指出:
-X importpath.name=value Set the value of the string variable in importpath named name to value.
这表明 -X 标志可以与任何包一起使用,而不仅仅是主包包裹。要指定包变量,只需提供完整的导入路径(类似于在代码中导入包的方式)。
例如,如果您的配置包位于 $GOPATH/src/my/package /config,您可以使用以下命令在该包中设置 Version 变量:
go build -ldflags "-X my/package/config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)
这将在 config 包中设置 Version 变量,即使构建命令是在主包。
以上是我可以使用'-ldflags -X”在非主 Go 包中设置包变量吗?的详细内容。更多信息请关注PHP中文网其他相关文章!