Failed to Initialize GLEW. Missing GL version

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-29 03:00:58
Quentin Perez

It's because you are not initializing OpenGL. Example with the lib glut.

Wrong:

 glewInit();  // ERROR MISSING GL VERSION
 glutInitDisplayMode(GLUT_RGB); 

Good:

 glutInitDisplayMode(GLUT_RGB);
 glewInit();

EDIT I think for SFML:

 sf::Window   App(sf::VideoMode(400, 400, 32), "Window");
 glewInit();

EDIT 2 Test this code.

#include <SFML/Window.hpp>
#include <iostream>
#include <GL/glew.h>

int
main(int, const char**)
{
    GLenum      err;

    std::cout << "Start" << std::endl;
    std::cout << "Test 1" << std::endl;
    if ((err = glewInit()) != GLEW_OK)
        std::cout << glewGetErrorString(err) << std::endl;

    std::cout << "Init window" << std::endl;
    sf::Window  app(sf::VideoMode(400, 400, 32), "Windows");

    std::cout << "Test 2" << std::endl;
    if ((err = glewInit()) != GLEW_OK)
        std::cout << glewGetErrorString(err) << std::endl;
    std::cout << "End" << std::endl;
    return 0;
}

My output:

Start
Test 1
Missing GL version
Init window
Test 2
End

Compile with: g++ -W -Wall -Werror main.cpp -lsfml-window -lGLEW

Good Luck ;)

At the request of user3648895, I am posting my answer outside of the comments separately.

For those using GLFW instead of SFML, you need to call glewInit() after glfwMakeContextCurrent

If you're using glew with glfw, use glfwMakeContextCurrent (https://github.com/Cloudef/glhck/issues/15)

For those using SDL2's Renderer functions, it needs to be right after SDL_CreateRenderer.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!