3

我记得您订购#include-s 的方式很重要。嗯,我有点麻烦。我有这两个标题:

#include <gl/glfw.h>
#include <gl/glew.h>

如果我运行它,我会收到一条错误消息,说 gl.h 包含在 glew.h 之前。但是如果我颠倒这两个的顺序,让 glew.h 排在第一位,我会得到很多错误。我只是想找出#define-s 的含义,所以我可以对我说:#define whatineed 0x0000x。

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

2 回答 2

3

当您首先包含 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

于 2011-04-24T21:48:55.227 回答
1

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

于 2011-04-28T00:44:27.393 回答