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

新手上路,请多包涵

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

 error: 'GL_VERTEX_SHADER' was not declared in this scope
error: 'glCreateShader' was not declared in this scope

代码:

 GLuint vs = glCreateShader(GL_VERTEX_SHADER);

是的,我确实有多余的东西。

原文由 Daniel says Reinstate Monica 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

glGetString(GL_VERSION) 返回什么?

CreateShader 不在 GLUT 中,而是在 OpenGL 2.0 中。如果您的“包含过剩”由于某种原因不包括 gl.h 或者您的 GL 版本小于 2.0,则标头不会声明它。

我还会检查您的 gl.h 以查看 CreateShader 是否真的在那里声明。

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

原文由 aib 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题