2017-05-30 149 views
0

战斗得到的东西,试图编译后,我意识到需要改变一些代码:当在OS X使用OpenGL VS GL

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

需要改变成:

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

安装后石英。然而,这也起作用:

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

但是OpenGL/glx.h不存在。

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

+0

认为它是一个目录结构(因为它)。系统将查找默认的include目录(如果使用了“”,则为本地目录),因此它们将扩展到 /OpenGL/gl.h和/GL/glx .h – Aumnayan

+0

我应该再说一遍,谢谢你的回复。 – rec

回答

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框架。

相关问题