首页 >后端开发 >Golang >Go 的 `-ldflags -X` 可以将变量分配给除 `main` 之外的包吗?

Go 的 `-ldflags -X` 可以将变量分配给除 `main` 之外的包吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-16 08:00:23714浏览

Can Go's `-ldflags -X` Assign Variables to Packages Other Than `main`?

Go 构建中使用 -ldflags -X 进行包变量赋值

问题:

构建 Go 应用程序时,是可以使用 -ldflags -X 将版本字符串变量分配给主包以外的包选项?

解决方案

是的,可以使用-ldflags -X 在任何包中设置变量。但是,它需要指定包的完整导入路径,而不仅仅是包名称。

要实现此目的,请使用以下语法:

-X importpath.package.variable=value

例如,如果配置包位于 $GOPATH/src/my/package/config ,使用以下构建命令:

go build -ldflags "-X my/package/config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)

该命令将分配值1.0.0 到配置包中的 Version 变量。

以上是Go 的 `-ldflags -X` 可以将变量分配给除 `main` 之外的包吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn