J'ai essayé de configurer SFML 2.0 avec la dernière version du Créateur Qt, j'ai configuré SFML à droite et j'ai importé un petit jeu que j'ai écrit dans Visual Studio. En compilation, je reçois ceci:
ce que j'ai essayé
Détails supplémentaires
Je cours Windows XP SP3, dernière version de Mingw et QT SDK et SFML
Le code que j'essaie de travailler avec des œuvres sans des erreurs ou même des avertissements sur Visual Studio 2010 et code :: blocs
Je n'ai pas compilé sfml moi-même
Ma version GCC est 4.6.2
Mon GCC est un dw2 un
Je ne reçois pas de résultats, je ne sais même pas comment se rapprocher à distance de la fixer, pas même où commencer.
[~ # ~] éditer [~ # ~]] Je ne peux pas vous montrer tout mon code, c'est plus de 20 fichiers et je suis sûr de pas 90% sûr que ce n'est pas mon code, j'ai dit Ci-dessus: je peux exécuter ce code sans aucun avertissement ni des erreurs sur tout IDE sauf le créateur QT.
C'est parce que vous n'initialisez pas OpenGL. Exemple avec la glouton lib.
Tort:
glewInit(); // ERROR MISSING GL VERSION
glutInitDisplayMode(GLUT_RGB);
Bon:
glutInitDisplayMode(GLUT_RGB);
glewInit();
[~ # ~] édition [~ # ~ ~] Je pense pour SFML:
sf::Window App(sf::VideoMode(400, 400, 32), "Window");
glewInit();
Edit 2 Testez ce 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;
}
Ma sortie :
Start
Test 1
Missing GL version
Init window
Test 2
End
Compiler avec: g++ -W -Wall -Werror main.cpp -lsfml-window -lGLEW
Bonne chance ;)
À la demande de User3648895, je pose ma réponse en dehors des commentaires séparément.
Pour ceux qui utilisent GLFW au lieu de SFML, vous devez appeler glewinit () après GLFWMAKECONTEXTEXTRENTT
Si vous utilisez glew avec GLFW, utilisez glfwMakeContextCurrent
( https://github.com/cloudef/glhck/issues/15 )