天天看點

go build -tags 的使用

go-tooling-workshop 中關于go build的講解可以了解到go bulid的一些用法,這篇文章最後要求實作一個根據go bulid -tag功能來編譯不同版本的做法,version參數根據tag傳進來的值進行編譯。下面是一個執行個體,main.go

好,建立一個dev_config.go檔案,代碼如下

上面代碼的關鍵是 <code>// +build dev</code>這行代碼,注意這行代碼前後須有一個空行隔開,例如在第一行時,接下來要空出一行。這個檔案隻會被go bulid識别到,而go run等指令不會去識别這個檔案,而且vscode等編輯器也會略過這個檔案。

再建立一個檔案release_config.go,代碼如下

代碼已經準備完畢,還有一個地方要注意,需要去掉main.go中的<code>const version = 'dev'</code>這行代碼,否則,go bulid指令會報version重複定義。

執行指令如下:

go build還支援通過指令行傳遞編譯參數,通過-ldflags參數實作,将main.go修改為

指令行執行: