如何使用go build-ldflags在编译时设置布尔变量
我有一个go程序如何使用go build-ldflags在编译时设置布尔变量,go,ld,Go,Ld,我有一个go程序测试。go package main import "fmt" var DEBUG_MODE bool = true func main() { fmt.Println(DEBUG_MODE) } 我想将时间上的DEBUG_MODE变量设置为false 我试过: go build -ldflags "-X main.DEBUG_MODE 0" test.go && ./test true
测试。go
package main
import "fmt"
var DEBUG_MODE bool = true
func main() {
fmt.Println(DEBUG_MODE)
}
我想将时间上的DEBUG_MODE
变量设置为false
我试过:
go build -ldflags "-X main.DEBUG_MODE 0" test.go && ./test
true
kyz@s497:18:49:32:/tmp$ go build -ldflags "-X main.DEBUG_MODE false" test.go && ./test
true
kyz@s497:18:49:41:/tmp$ go build -ldflags "-X main.DEBUG_MODE 0x000000000000" test.go && ./test
true
它不起作用,但当
调试\u模式
是字符串
时,它起作用。您只能使用-X
链接器标志设置字符串变量:
您可以改为使用字符串:
var DebugMode = "true"
然后
go build -ldflags "-X main.DebugMode=false" test.go && ./test
-X可以工作,但仅适用于字符串。考虑使用构建标记。
go build -ldflags "-X main.DebugMode=false" test.go && ./test