Go 編譯時加入版本資訊

2021-10-01 09:01:43 字數 919 閱讀 7606

go 編譯時可通過ldflags動態的為程式裡某個變數賦值,我們可以利用這個特性來達到將 go 的資訊和 git 的 commit 資訊編譯到我們的二進位制檔案中。

package main

import (

"fmt"

"os"

)var (

githash string

buildtime string

goversion string

)func main()

}

這裡我們定義了三個變數githashbuildtimegoversion,我們可以通過下面這個編譯命令將三個變數給賦值進去

go build -ldflags "-x 'main.goversion=$(go version)' -x 'main.githash=$(git show -s --format=%h)' -x 'main.buildtime=$(git show -s --format=%cd)'" -o main.exe version.go

-o輸出的二進位制檔名

-v編譯時顯示包名

-pn 開啟併發編譯,預設情況下該值為 cpu 邏輯核數

-a強制重新構建

-n列印編譯時會用到的所有命令,但不真正執行

-x列印編譯時會用到的所有命令

-race開啟競態檢測

檢視 git commit 的其他格式化引數 

Go編譯時加入版本資訊

go 編譯時可通過ldflags動態的為程式裡某個變數賦值,我們可以利用這個特性來達到將go的資訊和git 的commit 資訊編譯到我們的二進位制檔案中。package main import fmt os var githash string buildtime string goversion...

CMake編譯加入GDB除錯資訊

1 set cmake build type debug 2 set cmake cxx flags debug env o0 wall g2 ggdb 3 set cmake cxx flags release env o3 wall 在cmakelists.txt中加入這三行 cmake 中有乙...

為Go編譯的Windows程式加入資源檔案

首先編寫乙個rc檔案,如main.rc,內容如下 idi icon1 icon icon.ico 1 24 main.exe.manifest icon指的是程式的圖示,下邊的manifest是讓程式使用windows主題,string table version等按照普通rc檔案寫入即可。wind...