Подтвердить что ты не робот

Не удалось инициализировать GLEW. Отсутствует версия GL

Я попытался настроить SFML 2.0 с последней версией создателя qt, я правильно настроил SFML, и я импортировал небольшую игру, которую я написал в visual studio. После компиляции я получаю следующее:

enter image description here

Что я пробовал

  • Повторная установка всего qt SDK и qt creator IDE с нуля
  • Переустановка SFML
  • переустановка mingw
  • Я попытался написать простую программу, чтобы убедиться, что это не мой код, программа компилируется правильно, но когда я закрываю приложение, я получаю ошибки OpenGL, которые не являются нормальными
  • Я пробовал размещать поток на форумах SFML, но безрезультатно.
  • Ошибки в googling показывают несколько результатов, которые являются специфическими для OpenGL, и которые слишком локализованы, они не применяются ко мне, нет ответа для этого в SFML 2.0.

Дополнительные сведения

  • Я запускаю Windows XP SP3, последнюю версию mingw и qt SDK и SFML

  • Код, который я пытаюсь работать с работами без каких-либо ошибок или даже предупреждений в Visual Studio 2010 и Code:: Blocks

  • Да, я уверен, что SFML настроен на мою IDE, базовый код работает, но показывает эти ошибки, а более продвинутый код показывает все спрайты и текст как поля.
  • Я сам не скомпилировал SFML

  • Моя версия gcc 4.6.2

  • Мой gcc - это DW2 один

Я не получаю никаких результатов, я даже не знаю, как дистанционно приблизиться к этому, даже не с того, с чего начать.

ИЗМЕНИТЬ Я не могу показать вам весь мой код, это более 20 файлов, и я почти на 90% уверен, что это не мой код, я сказал это выше: я могу запустить этот код без каких-либо предупреждений или даже ошибок на любой IDE, кроме qt создатель.

4b9b3361

Ответ 1

Это потому, что вы не инициализируете OpenGL. Пример с избытком lib.

Неправильно:

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

Хорошо:

 glutInitDisplayMode(GLUT_RGB);
 glewInit();

EDIT Я думаю, для SFML:

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

EDIT 2 Проверьте этот код.

#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;
}

Мой вывод:

Start
Test 1
Missing GL version
Init window
Test 2
End

Скомпилировать с помощью: g++ -W -Wall -Werror main.cpp -lsfml-window -lGLEW

Удачи;)

Ответ 2

По запросу пользователя3648895, я отправляю свой ответ за пределы комментариев отдельно.

Для тех, кто использует GLFW вместо SFML, вам нужно вызвать glewInit() после glfwMakeContextCurrent

Ответ 4

Для тех, кто использует функции SDL2 Renderer, он должен быть сразу после SDL_CreateRenderer.