glCreateShader 上的 GLUT 分段错误

Posted

技术标签:

【中文标题】glCreateShader 上的 GLUT 分段错误【英文标题】:GLUT segmentation fault on glCreateShader 【发布时间】:2017-01-04 06:09:32 【问题描述】:

我正在使用 glew、glut 和 GLM 编写 C++ 程序。 当我像这样创建着色器时:

GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);

它说“分段错误(核心转储)”。 我的硬件是 Intel Atom CPU。 操作系统:OpenSuse 13.2 32 位。 我需要做什么才能让它发挥作用?

【问题讨论】:

【参考方案1】:

您没有检查 OpenGL 扩展、版本等。

GLenum err = glewInit();
if (err != GLEW_OK)
  exit(1); // or handle the error in a nicer way
if (!GLEW_VERSION_2_1)  // check that the machine supports the 2.1 API.
  exit(1); // or handle the error in a nicer way

此代码需要在创建 OpenGL 上下文之后,但在使用任何可能不存在的函数之前发生。更多详情请关注GLEW web page

【讨论】:

以上是关于glCreateShader 上的 GLUT 分段错误的主要内容,如果未能解决你的问题,请参考以下文章

glCreateShader 崩溃了

Mac 上的 GLUT 缺少 mUI

Mac 上的 OpenGL/GLUT 应用程序无法获得焦点 [关闭]

glCreateShader 在 OSX 上抛出异常,为啥?

如何在雪豹上的 XCode 中设置 opengl/glut 进行编程?

使用 GLUT 在立方体上的 OpenGL 多纹理映射