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

golang
go
package main

import (
	"fmt"
)

var isDebug string = "debug"

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

编译命令

shell
# 允许fmt.Println
go build -ldflags="-X main.isDebug=debug" main.go
# 不允许fmt.Println
go build -ldflags="-X main.isDebug=其他字符" main.go
  • -X 控制的必须是变量,常量不可,
  • -X 控制的变量只能是 string

评论