如何在我从Linux移植的C ++项目中使用Open GL

时间:2013-10-01 23:31:30

标签: c++ xcode macos opengl

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

  1. OS X似乎包含对open gl的内置支持。有nothing可供下载。
  2. 对于OSX和Linux上的OpenGL,头文件名可能有所不同( OpenGL headers for OS X & Linux
  3. 所以我对下一步做什么很困惑。我是否下载OpenGL并将其链接到我的项目?我是否将xcode配置为使用OpenGL的原生版本?我是否更改了标题?

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

2 个答案:

答案 0 :(得分:10)

Apple认为如果它们与其他人不兼容并且将OpenGL标头放在名为OpenGL的目录中而不仅仅是GL,那就太聪明了。所以你必须使用

#include <OpenGL/gl.h>

在Apple系统上和

#include <GL/gl.h>

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

#ifdef __APPLE__
#  include <OpenGL/gl.h>
#else
#  include <GL/gl.h>
#endif/*__APPLE__*/

答案 1 :(得分:1)

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

Windows也可以!但问题是Windows只允许您访问OpenGL 1.1函数......上面的所有内容都必须通过扩展来完成!可以在此处找到OpenGL扩展:http://www.opengl.org/registry/

但是因为设置这些扩展程序非常无聊,您可以使用GLEW或类似内容......

另一个非常常见的问题是如何在Windows上正确打开OpenGL上下文!如果您按照NeHe之类的旧教程进行操作,那么现在就会遇到一些问题。解决方案是使用类似GLFW,过剩,freeglut或类似的东西......

使用这一对“context + extensions”,您将能够轻松创建上下文并使用您可能在OS X上使用的“现代OpenGL”功能中的任何功能。我特别喜欢“GLFW + GLEW”!< / p>