![](/img/trans.png)
[英]How to initialize a QOpenGLContext on OS X to use OpenGL version 3.3?
[英]When to use OpenGL vs GL on OS X
努力争取可以编译的东西后,我意识到需要更改一些代码:
#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文件中有两个不同的位置?
第一:您使用了错误的包含路径; 我很惊讶这一切都奏效。 您想要的是:
#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框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.