a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Golang > 正文

在Golang代碼中如何自動生成版本號的方法示例

2020-04-01 19:04:57
字體:
來源:轉載
供稿:網友

前言

以前在寫C/C++代碼時,可以在代碼中預定義一些版本宏定義,然后再編譯時從外部傳入數據作為版本號golang/196398.html">golang代碼不支持宏定義,如果每次在代碼中硬編碼版本信息,一來費時費力,二來很容易忘記更新。

如何更優雅的維護golang程序的版本號呢?

翻閱golang文檔之后,在go build發現下面的參數

-ldflags 'flag list' arguments to pass on each go tool link invocation.

然后在linker中發現:

-X importpath.name=value Set the value of the string variable in importpath named name to value. Note that before Go 1.5 this option took two separate arguments. Now it takes one argument split on the first = sign.

按照文檔中的說明應該是在build時,通過-ldflags設定linker的參數。 然后再通過linker的-X來修改指定路徑下面的變量值。

按照這個邏輯,我們改寫下面的程序:

package mainimport (  "fmt")var _VERSION_ = "unknown"func main() {  fmt.Printf("Version:[%s]/n", _VERSION_)}

執行下面的build命令:

export TAG=dev-xxxx go build -ldflags "-X main._VERSION_='$TAG'" 

在執行程序時,就可以看到輸出預定義的版本號了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产在线视频一区 | 涩涩久久| 精品国产乱码久久久久久丨区2区 | 国产九九九精品视频 | 天天射夜夜爽 | 欧美性网 | 国产精品夜夜爽 | 欧美在线观看禁18 | 黄色国产精品 | 日韩一级片免费在线观看 | 最新av在线网址 | 日韩手机在线视频 | 视频一区二区国产 | 伊人欧美在线 | 特级黄色毛片在放 | 91亚洲成人 | www.亚洲 | 天天草夜夜操 | 欧美日韩精品一区二区在线播放 | 性色网站| 欧洲精品乱码久久久久蜜桃 | 97精品国产97久久久久久免费 | 中文字幕免费中文 | 久久精品一 | 午夜视频观看 | 9999久久久久 | 青草视频网站 | 久久情趣视频 | 欧美日韩一区不卡 | 亚洲精品在线观 | 久久精品一区视频 | 夜夜操com| 亚洲免费视频在线观看 | 精品久久久久久一区二区 | 日韩成人影视 | 最新av片| 久久国产精品99久久久久久牛牛 | 国产精品美女久久久久aⅴ国产馆 | 欧美aⅴ| 嫩草懂你| 久久一区二区三区四区 |