4

我只是尝试在我的 Mac 上编译一个开源 C++ 应用程序。我收到错误 GL/gl.h 文件未找到。我知道这意味着它找不到需要编译和运行的开放 GL 库。我对下一步该怎么做感到困惑,因为

  1. 似乎 OS X 包含对 open gl 的内置支持。没有什么可下载的。
  2. 似乎 OSX 和 Linux 上的 OpenGL 的头文件名可能不同( OS X 和 Linux 的 OpenGL 头文件

所以我对下一步该怎么做感到困惑。我要下载 OpenGL 并将其链接到我的项目吗?我是否将 xcode 配置为使用本机版本的 OpenGL?我要更改标题吗?

有人可以提供更多的方向。这个答案给出了 windows/linux 的答案——但不是 OS X: How to get the GL library/headers?

4

2 回答 2

10

Apple 认为如果它们与其他所有人不兼容是很聪明的,并将 OpenGL 头文件放在一个名为OpenGLnot just GL. 所以你必须使用

#include <OpenGL/gl.h>

在 Apple 系统和

#include <GL/gl.h>

其他地方。编译器预定义的预处理器宏是您的朋友。

#ifdef __APPLE__
#  include <OpenGL/gl.h>
#else
#  include <GL/gl.h>
#endif/*__APPLE__*/
于 2013-10-01T23:41:59.223 回答
1

“OS X 包括对 OpenGL 的内置支持”是对的!

Windows 也可以!但问题是 Windows 只允许您访问 OpenGL 1.1 功能......以上的一切都必须通过扩展来完成!OpenGL 扩展可以在这里找到:http ://www.opengl.org/registry/

但是因为设置这些扩展非常无聊,你可以使用GLEW或类似的东西......

另一个非常常见的问题是如何在 Windows 上正确打开 OpenGL 上下文!如果你遵循像NeHe这样的旧教程,现在你会遇到一些问题。解决方案是使用诸如GLFW、 glut 、 freeglut 或类似的东西......

使用这对“上下文 + 扩展”,您将能够轻松创建上下文并使用您可能在 OS X 上使用的“现代 OpenGL”函数中的任何函数。我特别喜欢“GLFW + GLEW”!

于 2013-10-02T00:03:11.900 回答