我正在将OpenGL代码从Main()函数中移动到一个特定的类中,该类仅在必要时处理3D图形。以前,我的main.cpp文件顶部如下:
#define GLEW_STATIC
#include <GL/glew.h>
#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Game.h"
这个效果还不错。我的尝试是将所有和OpenGL相关的代码放在Game
类的方法中。因此,我从上面移除了#define GLEW_STATIC
和#include <GL/glew.h>
,并将它们放入Game.h中,所以现在Game.h的顶部看起来像这样:
#define GLEW_STATIC
#include <GL/glew.h>
#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Environment.h"
当我尝试编译时,出现标题错误
#error gl.h included before glew.h
。为什么会这样,如何在没有出现这种情况的情况下在特定类的函数内几乎完全使用OpenGL代码?编辑:
我还尝试在main.cpp中进行此配置,以确保在GLEW之前没有任何东西包括SFML。
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Game.h"
#include <SFML/Graphics.hpp>
很遗憾,这并没有帮助到你(除了我在这里提到的内容,没有其他被包含的东西)。
#error included here
。这样会给你一个错误,其中包含了包含该文件的详细信息。 - Rup