【问题标题】:gl.h included before glew, but GLFW needs gl.hgl.h 包含在 glew 之前,但 GLFW 需要 gl.h
【发布时间】:2011-08-11 17:02:52
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你不是说#include &lt;glfw.h&gt;吗?
  • 不,我的 glfw.h 文件在 gl/ 文件夹中
  • 我说错了,我想说#include &lt;gl/glfw.h&gt;。有必要把.h放在最后,IIRC
  • 我刚刚修好了。感谢您的提醒。 :) 你碰巧知道答案吗?

标签: c opengl glew glfw


【解决方案1】:

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

【讨论】:

  • 您是否添加了自己的 GLU 标头版本?我安装的 VS 10 在该位置没有 GLU 标头。无论如何,您可以使用 GLFW_NO_GLU 禁用包含 GLU 标头。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2014-03-13
    • 2012-01-24
    • 1970-01-01
    • 2013-03-06
    • 2011-04-15
    • 2014-07-03
    • 2013-07-03
    • 2010-09-30
    • 2016-02-18
    相关资源
    最近更新 更多