8

我试图在 qt creator 上构建一个 opengl 程序,安装在我的 mac 上,使用 osx 10.9。我收到了关于 glut 函数在 osx10.9 中弃用的几个警告,示例错误消息如下:

'glutInit' 已弃用:首先在 OS X 10.9 中弃用 [-Wdeprecated-declarations] glutInit(&argc, &argv); ^

我想知道 GLUT.h 在 osx10.9 中是否不再可用?根据其他一些帖子,据说只要我们将“OS X Deployment Target”改回OSX10.8,就可以了。如何在 qtcreator 中这样做?谢谢!

4

1 回答 1

10

您仍然可以在 10.9 中使用它。他们向你发出了一个非常强烈的信号,他们希望你停下来,虽然......

-Wno-deprecated-declarations您可以使用编译器选项禁用这些警告。

如果您尝试使用 GL3 级别的功能,包括正确的标头在内也存在一些困难,因为您需要为此而包含gl3.h,而glut.h包含gl.h,这会导致在构建时对可能的冲突产生额外的抱怨。我为此找到的有点 hacky 的解决方法是通过定义标头保护来防止glut.h包含:gl.h

#include <OpenGL/gl3.h>
#define __gl_h_
#include <GLUT/glut.h>

然后,为了使用 GL3+ 级别的功能,您需要使用附加标志来指定glutInitDisplayMode()

glutInitDisplayMode(... | GLUT_3_2_CORE_PROFILE);

看来是时候开始使用 GLFW 了。我从来没有将 GLUT 用于任何严肃的事情,但它对于小型演示/测试总是非常方便。

于 2014-06-07T14:49:12.270 回答