Sto tentando di utilizzare OpenGL da un programma Go. I penso Ho tutti i pezzi sul posto, ma non sono ancora abbastanza in grado di farlo funzionare.Utilizzo di OpenGL da Go
Il mio compilatore C è il 64-bit version of mingw. È nella mia variabile %PATH%
e l'ho verificato con l'esempio di numero casuale nella documentazione cgo
.
Ho installato il GLEW 1.9.0 a 64 bit copiando le cartelle bin, lib e include gli equivalenti \mingw\x86_64-w64-mingw32
nell'installazione mingw-w64.
Quando provo e faccio funzionare go get github.com/go-gl/gl
, andare risponde con il seguente:
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)
Questi errori continuano in modo simile per valori fino a __cgo_enum__15
. Ottengo anche alcuni errori di corrispondenza provenienti dal lato Go delle cose per ogni voce.
Qualche idea su cosa mi manca per farlo funzionare?
Modifica: Ecco i registri di "corrispondenza" dal lato Go delle cose.
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
}
C'è uno per ogni __cgodebug_data[]
5-15.
Modifica 2: Mi è stato chiesto di allegare alcuni registri. Here is what happens when I compile with GCC 4.8 e Here is what I get with 4.7 and 4.6.
Cosa intendi con errori di corrispondenza? Puoi pubblicare anche loro? – nemo
Ho aggiunto gli errori che sembrano provenire dal lato Go di casa. –
Prova a eseguire 'go build -a -x' in' $ GOROOT/src/pkg/github.com/go-gl/gl' e incolla le righe che non riescono a includere anche i messaggi di errore che hai già postato. Questi possono aiutare. – nemo