私はOpenGlを学び、プリミティブリスタートインデックスがどのように機能するかについての簡単なテストを実装しようとしています。何を試しても、g++では「`__glewPrimitiveRestartIndex'への未定義の参照」というエラーが表示されます。
問題のコードは次のとおりです。
#include <GL/glew.h>
#include <GL/freeglut.h>
static GLfloat vertices[] = {0.0, 0.0, 0.0, 5.0, -5.0, 0.0,
0xffff, 0.0, -10.0, 5.0, -15.0, 6.0, -8.0};
void init(void)
{
glEnable(GL_PRIMITIVE_RESTART);
glPrimitiveRestartIndex(0xffff);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, vertices);
}
私はg++の使用に少し慣れておらず、その切り替えとインクルードメカニズムを完全には理解していないことを認めます。コンパイルに使用しているg++コマンドは次のとおりです。g++-otest test.cpp -lGL -lglut
コマンドに「-lGLEW」を追加すると、プログラムはコンパイルされますが、セグメンテーション違反が発生します。「glPrimitiveRestartIndex(0xffff);」という行を削除します コードから、-lGLEWがコンパイルコマンドに追加された場合、エラーなしで(もちろん、プリミティブ再起動インデックスが機能せずに)コンパイルおよび実行されますが、なしで試行した場合も同じエラーが発生します。
これにより、最初の問題は-lGLEWが含まれていないことが原因であると私は信じています。したがって、残っている唯一の問題は、なぜ私がセグメンテーション違反を渡されているのかを理解することです。0xffff以外のさまざまな値で試しましたが、問題は解決していません。