GLFW_OPENGL_CORE_PROFILE导致分段错误

时间:2014-08-13 17:52:06

标签: c++ opengl graphics glfw glew

我正在http://www.learnopengl.com/#!Getting-started/Hello-Window

上关注OpenGL教程

我有以下代码编写,如教程中所述,但设置配置文件会导致立即分段错误。该程序提供没有该行的预期输出。

#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>

int main() {
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); //SEGFAULT
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
    GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
    glfwMakeContextCurrent(window);
    glewExperimental = GL_TRUE;
    glewInit();
    glViewport(0, 0, 800, 600);
    while(!glfwWindowShouldClose(window))
    {
        glfwPollEvents();

        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);

        glfwSwapBuffers(window);
    }
    glfwDestroyWindow(window);
    glfwTerminate();
    return 0;
}

如果有帮助,glxinfo | grep OpenGL的输出低于:

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile 
OpenGL core profile version string: 3.1 (Core Profile) Mesa 10.1.3
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.1.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:

1 个答案:

答案 0 :(得分:0)

事实证明,在OpenGL 3.2中添加了核心和兼容性配置文件模式。由于我的系统有3.0,因此设置该参数会导致崩溃。

因此,对于低于3.2的版本,您无需设置兼容模式或核心配置文件。