何时在OS X上使用OpenGL vs GL

时间:2017-05-30 18:27:18

标签: c++ macos opengl

在争取尝试编译之后,我意识到需要改变一些代码:

#ifdef __APPLE__
#include "OpenGL/gl.h"
#include "OpenGL/glx.h"
#else 
...

需要改为:

#ifdef __APPLE__ 
#include "GL/gl.h"
#include "GL/glx.h"
#else
#...

安装Quartz后。但是,这也有效:

#ifdef __APPLE__ 
#include "OpenGL/gl.h"
#include "GL/glx.h"
#else
#...

OpenGL/glx.h不存在。

OS X上的不同标头位置是什么意思?为什么我有两个不同的OpenGL文件位置?

1 个答案:

答案 0 :(得分:0)

首先:你使用了错误的包含路径;我很惊讶这个工作。你想要的是:

#include <OpenGL/gl.h>

请注意使用尖括号而不是引号,以及OpenGL的大小写。

(您可能需要将OpenGL框架添加到项目中以使其工作。如果您不使用XCode,请将-framework OpenGL添加到编译器标志中。)

第二:不要在Mac应用程序中使用glx.h。 GLX是X11窗口系统的扩展,为GL提供支持 - 它主要用于在使用X11作为桌面界面的UNIX / Linux系统上。 macOS桌面界面不基于X11,因此您不需要GLX。

对路径的解释:

  • macOS上的GL/路径指的是X11 GL标头,如果您安装了XQuartz,它可能会出现。他们你想要的东西。

  • OpenGL/指的是OpenGL框架。