go build 可以用-gcflags給go編譯器傳入參數,也就是傳給go tool compile的參數,因此可以用go tool compile --help查看所有可用的參數。
其中-m可以檢查代碼的編譯優化情況,包括逃逸情況和函數是否內聯。
如果只在編譯特定包時需要傳遞參數,格式應遵守“包名=參數列表”,如go build -gcflags -gcflags='log=-N -l' main.go
go build用-ldflags給go鏈接器傳入參數,實際是給go tool link的參數,可以用go tool link --help查看可用的參數。
常用-X來指定版本號等編譯時才決定的參數值。例如代碼中定義var buildVer string,然后在編譯時用go build -ldflags "-X main.buildVer=1.0" ... 來賦值。注意-X只能給string類型變量賦值。