golang编译后的可执行文件不打印fmt的方法/golang条件编译

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package main

import (
	"fmt"
)

var isDebug string = "debug"

func main() {
	fmt.Println("isDebug ", isDebug)
	if isDebug == "debug" {
		fmt.Println("Debug information")
	}
}

编译命令

1
2
3
4
# 允许fmt.Println
go build -ldflags="-X main.isDebug=debug" main.go
# 不允许fmt.Println
go build -ldflags="-X main.isDebug=其他字符" main.go
  • -X 控制的必须是变量,常量不可,
  • -X 控制的变量只能是 string
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计