glew之前包含gl.h,但GLFW需要gl.h

我记得你订购#include-s的方式。 好吧,我有点麻烦了。 我有这两个标题:

#include  #include  

如果我运行它,我得到一个错误,说gl.h包含在glew.h之前。 但是如果我颠倒那两个的顺序以便glew.h是第一个,我会得到很多错误。 我只是在考虑搜索#define-s的含义,所以我只能对我说:#define whatineed 0x0000x。

  1. 如何使用标题排列来解决此问题。
  2. 狩猎和使我的定义安全的方法?

首先包含GLEW标头时会出现什么样的错误?

GLEW标头定义了禁用包含大多数GL标头所需的所有魔法,因此在GLFW应该工作之前包括GLEW标头; 应该像我在Linux,Windows和Mac OS X上使用原生GCC,Clang,MinGW,Cygwin和VC ++一样成功地使用了这些。 这甚至是官方常见问题解答:

http://www.glfw.org/faq.html#can-i-use-extension-loaders-with-glfw

主要的问题是glfw.h有一个明确的检查来测试gl.h是否已被包含并且如果有的话会失败 ,而不是仅仅继续忽略那个“错误”。 我最后只是简单地在我的lib版本的标题中注释了那段代码。