為Golang程式打上編譯標記

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。參考文章: http://stackoverflow.com/questions/11354518/golang-application-auto-build-versioning

昨天在查詢怎麼產生一個小體積的golang程式的時候,無意中發現這個文章.

對於固定的代碼,及固定的golang版本,下面的命令總是得到一模一樣的程式

go build
有時候需要為每個編譯都打上標記,不然真的很亂啊

示範用的golang代碼

package mainvar _VERSION_ = "unknown"func main() {    print("http_su ver=" + _VERSION_ + "\n")}

編譯時間,加入需要的版本號碼資訊,而不是直接去改main.go的源碼

export TAG=v1.b.50
go build -ldflags "-X main._VERSION_ '$TAG'"
運行結果:

> go build
> ./demo
http_su ver=unknown
> export TAG=v.1.b.50
> go build -ldflags "-X main._VERSION_ '$TAG'"
> ./demo
http_su ver=v.1.b.50
可以看到, 版本號碼根據編譯參數的變化而變化了. 關鍵點是, 必須是 $package.$varName

本demo在linux/macos/windows/arm下測試通過.
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.