我只是在学习 OpenGl 并尝试对 Primitive Restart Index 如何工作进行简单的测试。无论我尝试什么,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++ 有点陌生,并不完全理解它的 switch 和 include 机制。我用来编译它的 g++ 命令如下: g++ -o test test.cpp -lGL -lglut
将“-lGLEW”附加到命令后,程序编译但给我一个段错误。删除“glPrimitiveRestartIndex(0xffff);”行 当 -lGLEW 附加到编译命令时,从代码中可以编译和运行而没有错误(当然,没有原始重启索引工作),但在尝试没有时会出现相同的错误。
这让我相信最初的问题是由于没有包含 -lGLEW - 所以唯一剩下的问题是弄清楚为什么我被交给了一个段错误。我尝试过使用 0xffff 以外的其他值,但问题仍然存在。