2011-03-07 49 views
1

不知何故,我无法在多个头文件中获得Glew。它只是抱怨Gl已经在GLEW之前定义过了。在多个文件中使用Glew

我在短以下文件结构:

  1. Program.h
    包括:<GL/glew.h><GL/freeglut.h>"SceneManager.h"
  2. SceneManager.h
    包括:"GameObject.h"
  3. GameObject.h
    包括:<GL/glew.h><GL/freeglut.h>

我不明白,freeglut是GLEW的面前,但是我想有GL_BGR扩展的例子。

我该如何获得GameObject中的glew.h

回答

0

我做了一点不同的自己现在:

我创建了一个预编译的头与GLEW和它freeglut。它看起来像这样:

#ifndef _STDAFX_H_ 
#define _STDAFX_H_ 

#include <GL/glew.h> 
#include <GL/freeglut.h> 

#endif 

有人可以确认,如果这是一个坚实而知名的方法来做到这一点?

0

必须是glew.h中的错误。

我用GLee来代替,它没有这个问题。欢乐的测试看起来是这样的:

#ifndef __glee_h_ 
#define __glee_h_ 

#ifdef __gl_h_ 
    #error gl.h included before glee.h 
#endif 

#ifdef __glext_h_ 
    #error glext.h included before glee.h 
#endif 

#ifdef __wglext_h_ 
    #error wglext.h included before glee.h 
#endif 

#ifdef __glxext_h_ 
    #error glxext.h included before glee.h 
#endif 

//... 
#endif /* !defined(__glee_h_) */ 

所以测试仅在第一时间完成包括glee.h

显然glew不正确地测试标题之外的多个夹杂物。

我在第一次运行OpenGL跟踪(glslDevil,实际上)时从glew切换到GLee,并看到在启动时数百次呼叫glGetString(GL_EXTENSIONS)