Я попытался настроить SFML 2.0 с последней версией создателя qt, правильно настроил SFML и импортировал небольшую игру, которую написал в visual studio. После компиляции я получаю это:
Что я пробовал
Дополнительные детали
Я использую Windows XP SP3, последнюю версию mingw и qt SDK и SFML
Код, с которым я пытаюсь работать, работает без любые ошибки или даже предупреждения на Visual Studio 2010 а также Code :: Blocks
Я не собирал SFML сам
Моя версия gcc 4.6.2
Мой GCC является DW2 один
Я не получаю результатов, я даже не знаю, как удаленно приблизиться к решению этой проблемы, даже с чего начать.
РЕДАКТИРОВАТЬ
Я не могу показать вам весь мой код, это более 20 файлов, и я почти на 90% уверен, что это не мой код, я сказал это выше: я могу запустить этот код без каких-либо предупреждений или даже ошибок в любой среде IDE, кроме Qt Creator.
Это потому, что вы не инициализируете OpenGL.
Пример с избытком lib.
Неправильно:
glewInit(); // ERROR MISSING GL VERSION
glutInitDisplayMode(GLUT_RGB);
Хорошо:
glutInitDisplayMode(GLUT_RGB);
glewInit();
РЕДАКТИРОВАТЬ Я думаю для SFML:
sf::Window App(sf::VideoMode(400, 400, 32), "Window");
glewInit();
РЕДАКТИРОВАТЬ 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
Удачи 😉
По просьбе user3648895 я публикую свой ответ отдельно от комментариев.
Для тех, кто использует GLFW вместо SFML, вам нужно вызвать glewInit () после glfwMakeContextCurrent
Если вы используете glew с glfw, используйте glfwMakeContextCurrent
(https://github.com/Cloudef/glhck/issues/15)
Для тех, кто использует функции Renderer SDL2, это должно быть сразу после SDL_CreateRenderer
,