首頁 > 後端開發 > Golang > 我可以使用'-ldflags -X”在非主 Go 包中設定包變數嗎?

我可以使用'-ldflags -X”在非主 Go 包中設定包變數嗎?

DDD
發布: 2024-12-22 22:00:17
原創
621 人瀏覽過

Can I Set Package Variables in Non-Main Go Packages Using `-ldflags -X`?

Golang Build 中使用-ldflags -X 設定套件變數

使用go build 指令指令使用-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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板