गो

2013-05-07 3 views
11

से ओपनजीएल का उपयोग करके मैं एक गो प्रोग्राम के भीतर से ओपनजीएल का उपयोग करने की कोशिश कर रहा हूं। मैं सोचता हूं मेरे पास सभी टुकड़े हैं, लेकिन मैं अभी भी इसे चलाने में सक्षम नहीं हूं।गो

मेरा सी कंपाइलर 64-bit version of mingw. है यह मेरे %PATH% चर में है, और मैंने इसे cgo दस्तावेज़ में यादृच्छिक संख्या उदाहरण के साथ काम करने की पुष्टि की है।

मैंने बिन, lib का मुकाबला करके 64-बिट GLEW 1.9.0 स्थापित किया है और फ़ोल्डरों को \mingw\x86_64-w64-mingw32 में मेरे mingw-w64 स्थापना में समकक्ष शामिल किया है।

जब मैं कोशिश करते हैं और go get github.com/go-gl/gl चलाने के लिए, निम्नलिखित के साथ उत्तर जाना:

In file included from attriblocation.go:7:0: 
gl.h:5:25: error: enumerator value for '__cgo_enum__5' is not an integer constant 
#define GLEW_GET_FUN(x) (*x) 
         ^
d:\programs\mingw64\x86_64-w64-mingw32\include\gl\glew.h:1956:26: note: in expansion of macro 'GLEW_GET_FUN' 
#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f) 
         ^
gl.h:5:25: error: enumerator value for '__cgo_enum__6' is not an integer constant 
#define GLEW_GET_FUN(x) (*x) 

इन त्रुटियों __cgo_enum__15 अप करने के लिए मूल्यों के लिए इसी तरह से जारी है। मुझे प्रत्येक प्रविष्टि के लिए चीजों के गो साइड से आने वाली कुछ मिलान त्रुटियां भी मिलती हैं।

इस बात पर कोई विचार है कि मैं इसे काम करने के लिए क्या खो रहा हूं?

संपादित करें: यहां चीजों के गो पक्ष से 'मिलान' लॉग हैं।

attriblocation.go:42:2: error: initializer element is not constant 
func (indx AttribLocation) Attrib4fv(values *[4]float32) { 
^
attriblocation.go:42:2: error: (near initialization for '__cgodebug_data[5]') 
attriblocation.go:43:2: error: initializer element is not constant 
    C.glVertexAttrib4fv(C.GLuint(indx), (*C.GLfloat)(&values[0])) 
^
attriblocation.go:43:2: error: (near initialization for '__cgodebug_data[6]') 
attriblocation.go:44:2: error: initializer element is not constant 
} 

प्रत्येक __cgodebug_data[] 5-15 के लिए एक है।

संपादित करें 2: मुझे कुछ लॉग संलग्न करने के लिए कहा गया है। Here is what happens when I compile with GCC 4.8, और Here is what I get with 4.7 and 4.6

+0

मिलान त्रुटियों के साथ आपका क्या मतलब है? क्या आप उन्हें भी पोस्ट कर सकते हैं? – nemo

+0

मैंने त्रुटियों को जोड़ा जो घर के गो साइड से आते हैं। –

+0

'$ GOROOT/src/pkg/github.com/go-gl/gl' में' build build -a -x' चलाने का प्रयास करें और आपके द्वारा पहले से पोस्ट किए गए त्रुटि संदेशों के अतिरिक्त विफल होने वाली लाइनों को पेस्ट करें। ये मदद कर सकते हैं। – nemo

उत्तर

3

ऐसा लगता है कि यह गो में एक दोष है और कैसे सी/गो कंपाइलर्स एक दूसरे के साथ संवाद करते हैं। वर्कअराउंड CGO_CFLAGS=-ftrack-macro-expansion=0 go build सेट करना है। आप समस्या को ठीक करने के लिए go-1.2rc5 या नए का भी उपयोग कर सकते हैं। This bug has been closed with the previous workarounds/fixes specified

+1

यह वास्तव में गो-ग्ल के बजाए जाने में एक दोष है। समस्या को ठीक करने के लिए कुछ भी नहीं जा सकता है क्योंकि यह एक-दूसरे से बात करने वाले कंपेलरों की समस्या है। – pwaller

+0

आप सही हैं! उत्तर स्पष्टता के लिए संपादित किया गया। –

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