在争取尝试编译之后,我意识到需要改变一些代码:
#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文件位置?
答案 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框架。