Я только изучаю 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 ++ -o test test.cpp -lGL -lglut
После добавления «-lGLEW» к команде программа компилируется, но передает мне ошибку. Удаление строки "glPrimitiveRestartIndex (0xffff);" из этого кода он компилируется и запускается без ошибок (конечно, без работающего примитивного индекса перезапуска), когда -lGLEW добавляется к команде компиляции, но выдает ту же ошибку при попытке без.
Это заставляет меня поверить, что первоначальная проблема возникает из-за того, что я не включил -lGLEW - так что единственная оставшаяся проблема - выяснить, почему мне вручают сегфо. Я пробовал с другими значениями, отличными от 0xffff, но проблема остается.