gpt4 book ai didi

go - golang 中的 C 风格条件编译

转载 作者:IT老高 更新时间:2023-10-28 13:06:13 26 4
gpt4 key购买 nike

golang 支持吗

#define DEBUG 

#ifdef DEBUG
fmt.Println("Debug message...");
#endif

所以我可以构建一个运行时开销为零的调试版本?

最佳答案

Go 没有预处理器或宏系统。您可以做的是传递标签以通过 -tags 标志进行构建并使用构建约束。为此,您需要相同源的两个版本,并且根据标签是否存在,只构建一个版本。

查看 https://golang.org/pkg/go/build/ 中的构建约束

main_debug.go

// +build debug

package main

import (
"fmt"
)

func main() {
fmt.Println("Debug build")
}

main_release.go

// +build !debug

package main

import (
"fmt"
)

func main() {
fmt.Println("Release build")
}

这里 go build 将使用 main_release.go 进行编译,而 go build -tags debug 将使用 main_debug.go 进行编译

关于go - golang 中的 C 风格条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38950909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com