erreur #gl.h inclus avant glew.h

Donc je suis en train de passer mon code OpenGL main() dans une classe qui va gérer les graphismes en 3D uniquement lorsque c'est nécessaire. Auparavant, le dessus de mon main.cpp fichier ressemble à ceci:

#define GLEW_STATIC
#include <GL/glew.h>
#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Game.h"

Cela a fonctionné assez bien. Ce que j'ai essayé de faire était de déplacer toutes les OpenGL-code dans les méthodes de la Game classe. J'ai donc enlevé #define GLEW_STATIC et #include <GL/glew.h> à partir de ci-dessus, et de les mettre en Jeu.h, de telle sorte que le haut de Jeu.h ressemble maintenant à ceci:

#define GLEW_STATIC
#include <GL/glew.h>
#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Environment.h"

Lorsque j'essaie de compiler, j'obtiens le titre de l'erreur, #error gl.h included before glew.h.

Pourquoi est-ce qui se passe, et comment puis-je utiliser le code OpenGL (presque) entièrement à l'intérieur des fonctions d'une classe spécifique, sans que cela se produise?

EDIT:

J'ai aussi essayé cette configuration dans main.cpp, dans une tentative de s'assurer que rien n'inclut SFML avant de GLEW.

#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Game.h"
#include <SFML/Graphics.hpp>

Malheureusement, cela ne fonctionne pas (il n'y a rien d'autre ne soit compris que je ne suis pas de mentionner ici).

Est-ce à dire que vous êtes maintenant #y compris glew.h deux fois, une fois de main.cpp et une fois de jeu.h? Je suppose que glew.h n'est pas écrit pour qu' (pas de gardes ou d' #pragma), de sorte que vous devrez ajouter vos propres gardes ou de prendre soin de l'inclure exactement une fois.
GLEW a #include gardes. C'est une autre bibliothèque qui est, y compris le gl.h. Éventuellement SFML.
Non, je le supprime de main.cpp. Je suppose que cela pourrait être la SFML, mais j'étais sous l'impression qu'il n'a pas les inclure automatiquement gl.h, car il existe des tutoriels pour ça que voulez-vous d'inclure explicitement fichier. Je vais jouer avec ça et voir si cela résout rien, mais j'ai encore besoin d'utiliser la SFML dans main.cpp au moins avec mon setup actuel.
J'ai juste essayé #, y compris "le Jeu.h" avant <SFML/Graphics.hpp>, telle que rien ne SFML liés à la avant Jeu.h, mais j'obtiens toujours la même erreur.
Vous pourriez ajouter #error included here vers le haut de gl.h. Cela devrait vous donner une erreur avec tous les détails de l'endroit où l'inclusion est venu.

OriginalL'auteur GarrickW | 2011-12-20