条件代码的 Go 编译器标志

tec*_*amp 2 compilation go

我是 Go 新手,作为一名前 C++ 程序员,我对如何在 Go 中执行此操作有点困惑。我想添加一个编译时标志,基于该标志我可以包含一些测试代码。

我尝试使用-ldflags,但无法超越单个变量。

这是我尝试过的:-ldflags "X main.var1 var1_value" "X main.var2 var2_value"

我在这里做的事情正确吗?

Ain*_*r-G 5

考虑使用构建约束而不是-X标志。这允许您通过执行类似的操作来有条件地编译任何代码

go install -tags 'foo bar'
Run Code Online (Sandbox Code Playgroud)

-X如果您仍然想多次使用该标志,请按如下操作:

go install -ldflags '-X main.Foo 1 -X main.Bar 2' main.go
Run Code Online (Sandbox Code Playgroud)

或者(在 Go 1.5+ 中添加并推荐)

go install -ldflags '-X main.Foo=1 -X main.Bar=2' main.go
Run Code Online (Sandbox Code Playgroud)