go 編譯時可通過ldflags
動態的為程式裡某個變數賦值,我們可以利用這個特性來達到將 go 的資訊和 git 的 commit 資訊編譯到我們的二進位制檔案中。
package main
import (
"fmt"
"os"
)var (
githash string
buildtime string
goversion string
)func main()
}
這裡我們定義了三個變數githash
buildtime
goversion
,我們可以通過下面這個編譯命令將三個變數給賦值進去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
編譯時顯示包名
-p
n 開啟併發編譯,預設情況下該值為 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...