Я пытаюсь использовать OpenGL из программы Go. Я думаю, что у меня есть все штуки на месте, но я все еще не в состоянии заставить его работать.
Мой компилятор C - это 64-разрядная версия mingw. Это в моей переменной %PATH%
, и я проверил ее работу с примером случайного числа в документации cgo
.
Я установил 64-разрядный GLEW 1.9.0, скопировав папки bin, lib и include в эквиваленты \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
. Я также получаю некоторые совпадающие ошибки, исходящие из стороны Go для каждой записи.
Любые идеи о том, что мне не хватает, чтобы заставить это работать?
Изменить: Вот "соответствующие" журналы со стороны "Go".
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: Меня попросили прикрепить несколько журналов. Вот что происходит при компиляции с GCC 4.8 и Вот что я получаю с 4.7 и 4.6.