我有一个这样的程序:
package main
import "fmt"
var version string
func main() {
fmt.Printf("Version %s\n", version)
}
我想在编译时更改版本的值,如此处所示,所以我以这种方式构建它(wtf.go 在 src/wtf 中):
go build -ldflags "-X wtf/main.version=1.0.0.1234" wtf
go install wtf
但是当我运行时,版本是一个空字符串。
我尝试了各种版本的外壳,包名称和路径的不同变体。似乎go build并没有太多地验证包/变量名,因为显然伪造的不会产生错误。
有没有办法找出 go 试图修改的变量,以便解决这个问题?
我正在为 Windows/amd64 使用 Go v 1.10.3。
慕田峪4524236
相关分类