我目前正在尝试用OpenGL编写一个小游戏。我有两节课:
来自CoreEngine.h的包含:
#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <vector>
#include "RenderingEngine.h"
#include "GameObject.h"
来自Mesh.h的包含:
#ifndef _MESH_H_
#define _MESH_H_
#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <string>
原因是我需要在CoreEngine.h和Mesh.h中使用OpenGL中的函数,但是当我尝试编译时,我得到了这个错误:
Fehler 1 error C1189: #error : gl.h included before glew.h
我无法找到办法,以防止出现此错误并同时在两个类中使用OpenGL函数。
答案 0 :(得分:0)
首先,检查是否启用了预编译头文件(stdafx.h) - 如果这样做,请不要。 - 在软件开发的十五年中,我只有一个需要预编译头的项目。甚至在那里它引起了无穷无尽的初级开发人员的头痛。
其次,检查您的个人CPP文件,您可能会找到诸如
之类的内容#include <gl/gl.h>
#include "mesh.h"
最后作为第一个也是最后一个(对于视觉工作室用户),例如你自己,你可以显示所有包含语句的列表,以及它们所包含的顺序:using /show includes - See this question for details
你可能会发现其他一些库在程序的早期版本中包含了gl.h(例如图形导入库,甚至是数学库(例如glm)。使用import-graph为此问题是推荐的方法。