OpenGL“分段错误”错误

时间:2017-08-09 19:21:52

标签: c++ opengl glfw glew

我最近一直在玩OpenGL和Ubuntu,似乎我遇到了错误。

我试图跟随其他与问题完全相同的线程。

简单地说,我没有工作......

这是我的错误:

Segmentation fault (core dumped)

我使用这个“build.sh”脚本编译程序

g++ -o exec main.cpp -I/usr/include/libdrm -lglfw -I/usr/include/libdrm -lGL -I/usr/include/libdrm -lGLEW -lGLU -lGL

这是我的“main.cpp”

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

int main(){

    if(!glfwInit()){
        //error
    }

    glewExperimental = GL_TRUE;

    glewInit();

    GLFWwindow* window = glfwCreateWindow(640, 480, "Title", NULL, NULL);

    if(!window){
        //error
    }

    glfwMakeContextCurrent(window);

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

    float vertices[] = {
        -0.5f, -0.5f, 0.0f,
         0.5f, -0.5f, 0.0f,
         0.0f,  0.5f, 0.0f
    };  

    unsigned int VBO;

    glGenBuffers(1, &VBO);

    while(!glfwWindowShouldClose(window)){

        glfwPollEvents();   

        glClear(GL_COLOR_BUFFER_BIT);

        glfwSwapBuffers(window);
    }

    glfwDestroyWindow(window);

    glfwTerminate();

    return 0;
}

修改

问题已经解决。
对于像我这样的人,您需要在glewInit()

之后致电makeContextCurrent()

1 个答案:

答案 0 :(得分:0)

这真的很简单我只需要把

glewExperimental = GL_TRUE;
glewInit();

glfwMakeContextCurrent()

之后