英文:
Go compiler flag for conditional code
问题
我是新手学习Go语言,之前是C++程序员,对于如何在Go中实现这个功能有些困惑。
我想根据编译时的标志来添加一些测试代码。
我尝试使用-ldflags
,但是只能设置一个变量,无法设置多个。
我尝试了以下方式:-ldflags "X main.var1 var1_value" "X main.var2 var2_value"
。
我这样做对吗?
英文:
I am new to Go and as a former C++ programmer am a little confused on how to do this in Go.
I want to add a compile time flag based on which I may include some test code.
I tried using -ldflags
, but am unable to go beyond a single variable.
This is what I tried: -ldflags "X main.var1 var1_value" "X main.var2 var2_value"
.
Am I doing the right thing here?
答案1
得分: 5
考虑使用构建约束而不是-X
标志。这样可以通过以下方式有条件地编译任何代码:
go install -tags 'foo bar'
如果你仍然想多次使用-X
标志,可以这样做:
go install -ldflags '-X main.Foo 1 -X main.Bar 2' main.go
或者(在Go 1.5+中添加和推荐):
go install -ldflags '-X main.Foo=1 -X main.Bar=2' main.go
英文:
Consider using build constraints instead of the -X
flag. This, allows you to compile any code conditionally by doing something like
go install -tags 'foo bar'
If you still want to use the -X
flag multiple times, do it like this:
go install -ldflags '-X main.Foo 1 -X main.Bar 2' main.go
or (added and recommended in Go 1.5+)
go install -ldflags '-X main.Foo=1 -X main.Bar=2' main.go
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论