首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用go build -ldflags在编译时设置布尔变量

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

Stack Overflow用户
提问于 2014-12-03 11:52:08
回答 1查看 2.1K关注 0票数 6

我有一个围棋程序test.go

代码语言:javascript
复制
package main

import "fmt"

var DEBUG_MODE bool = true    

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

我想将编译时间上的编译变量设置为false

我试过:

代码语言:javascript
复制
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时,它可以工作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 12:03:22

只能使用-X链接器标志设置字符串变量。从医生那里

代码语言:javascript
复制
-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.

您可以使用字符串代替:

代码语言:javascript
复制
var DebugMode = "true"

然后

代码语言:javascript
复制
go build -ldflags "-X main.DebugMode=false" test.go && ./test
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27271094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档