'glCreateShader'未在此范围内声明?

dan*_*pen 5 c++ opengl compiler-errors

为什么我会收到这些错误?

错误:'GL_VERTEX_SHADER'未在此范围内声明
错误:'glCreateShader'未在此范围内声明

码:

GLuint vs = glCreateShader(GL_VERTEX_SHADER);
Run Code Online (Sandbox Code Playgroud)

是的,我确实有过剩的包含.

aib*_*aib 6

什么glGetString(GL_VERSION)回报?

CreateShader不是在GLUT而是OpenGL 2.0.如果您的"包括过剩"不包括gl.h由于某种原因或您的GL版本小于2.0,标题将不会声明它.

我也会检查你gl.h是否CreateShader确实在那里宣布.

编辑:这个OpenGL头版本的东西似乎是Windows中的一般问题.大多数人建议使用GLEW或其他扩展加载程序库来绕过它.