gpt4 book ai didi

go - 如何使用 go build -ldflags 在编译时设置 bool 变量

转载 作者:IT王子 更新时间:2023-10-29 01:27:14 24 4
gpt4 key购买 nike

我有一个围棋程序test.go

package main

import "fmt"

var DEBUG_MODE bool = true

func main() {
fmt.Println(DEBUG_MODE)
}

我想在 compile 上设置 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

它不起作用,但是当 DEBUG_MODE 是一个 string 时它起作用了

最佳答案

您只能使用 -X 链接器标志设置字符串变量。 From the docs :

-X importpath.name=value
Set the value of the string variable in importpath named name to value.
Note that before Go 1.5 this option took two separate arguments.
Now it takes one argument split on the first = sign.

您可以改用字符串:

var DebugMode = "true"

然后

go build -ldflags "-X main.DebugMode=false" test.go && ./test

关于go - 如何使用 go build -ldflags 在编译时设置 bool 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27271094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com