2016-08-15 10 views
5

करता golang का समर्थन करता हैसी शैली सशर्त संकलन

#define DEBUG 

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

तो मैं शून्य क्रम भूमि के ऊपर के साथ एक डिबग संस्करण का निर्माण कर सकते हैं?

+1

कड़ाई से स्पैम ओकेन संख्या कोई प्रीप्रोसेसर नहीं है, और इसलिए कोई प्रीप्रोसेसर जादू नहीं है। – lofcek

+0

जावा में जैसे गोलांग में कोई एम्बेडेड प्रीप्रोसेसर नहीं है लेकिन जावा की तरह भी 3 वें पक्ष के समान टूल का उपयोग करना संभव है। उदाहरण के लिए मैं [जावा टिप्पणी प्रीप्रोसेसर + एमवीएन-गोलांग] (https://github.com/raydac/mvn-golang/tree/master/mvn-golang-examples/mvn-golang-examples-preprocessing) का उपयोग करता हूं और यह अच्छा बनाता है परिणाम –

उत्तर

12

गो में प्रीप्रोसेसर या मैक्रो सिस्टम नहीं है। आप -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 साथ संकलन होगा

+0

लगता है कि यह अब के लिए सबसे अच्छा अभ्यास है ... –

संबंधित मुद्दे