为什么我会收到这些错误?
错误:未在此范围内声明'GL_VERTEX_SHADER'
错误:'glCreateShader'未在此范围内声明
代码:
GLuint vs = glCreateShader(GL_VERTEX_SHADER);
是的,我确实有过剩的包容。
答案 0 :(得分:6)
glGetString(GL_VERSION)
返回什么?
CreateShader
不在GLUT中,而是在OpenGL 2.0中。如果您的“包含过剩”由于某种原因不包括gl.h
或您的GL版本小于2.0,则标题不会声明它。
我还会检查您的gl.h
,看看是否真的在那里宣布CreateShader
。
编辑:这个OpenGL头版本似乎是Windows中的一般问题。大多数人建议使用GLEW或其他扩展加载程序库来绕过它。
答案 1 :(得分:3)
您需要使用OpenGL loading library加载OpenGL函数,或manually load the functions yourself。你不能只使用gl.h
并希望得到所有东西。
答案 2 :(得分:0)