합니까의 golang는C 스타일의 조건부 컴파일은
#define DEBUG
#ifdef DEBUG
fmt.Println("Debug message...");
#endif
그래서 나는 제로 런타임 오버 헤드 디버그 버전을 구축 할 수 있습니다 지원?
합니까의 golang는C 스타일의 조건부 컴파일은
#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에서 빌드 제약에서
는봐 여기 go build
main_release.go 컴파일 것이며 main_debug.go와 go build -tags debug
컴파일 할
// +build !debug
package main
import (
"fmt"
)
func main() {
fmt.Println("Release build")
}
지금은 가장 좋은 방법입니다 ... –
엄밀히 말하면 sp 오켄 아니. 전 처리기가 없으므로 전 처리기 마법도 없습니다. – lofcek
Java에서와 같이 GoLang에는 임베디드 전처리 기가 없지만 Java와 마찬가지로 3 번째 유사한 도구를 사용할 수 있습니다. 예를 들어 [Java Comment Preprocessor + mvn-golang] (https://github.com/raydac/mvn-golang/tree/master/mvn-golang-examples/mvn-golang-examples-preprocessing)을 사용하면 결과 –