Go プログラム内から OpenGL を使用しようとしています。すべての部品が揃っていると思いますが、まだ完全には実行できていません。
私の C コンパイラはmingw の 64 ビット版です。それは私の変数にあり、ドキュメント%PATH%
の乱数の例で動作することを確認しました。cgo
\mingw\x86_64-w64-mingw32
bin、lib、および include フォルダーをmingw-w64 インストールの同等のフォルダーにコピーして、64 ビット GLEW 1.9.0 をインストールしました。
を実行しようとするとgo get github.com/go-gl/gl
、go は次のように応答します。
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
}
5 ~ 15ごとに 1 つあり__cgodebug_data[]
ます。
編集 2:ログを添付するように求められました。GCC 4.8でコンパイルした場合は次のようになり、4.7 と 4.6 でコンパイルした場合は次のようになります。