【问题标题】:Glut deprecation in Mac OSX 10.9, IDE: QT CreatorMac OSX 10.9 中的 Glut 弃用,IDE:QT Creator
【发布时间】:2014-06-07 09:49:29
【问题描述】:

我试图在 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 中这样做?谢谢!

【问题讨论】:

  • 如果您正在寻找 glut 替代品(我希望您很快就会找到),可以使用 GLFW(我的最爱)、SDL 或 freeglut。
  • 谢谢! GLFW 和 GLUT 的主要区别是什么?
  • 另外,只是一个悬而未决的问题,有人知道为什么 osx10.9 不再支持 glut 吗?这不是一个好的图书馆吗?
  • @HPH 差不多,供过于求已经很老了,而且很有限。

标签: c++ opengl osx-mavericks glut deprecation-warning


【解决方案1】:

您仍然可以在 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 用于任何严肃的事情,但它对于小型演示/测试总是非常方便。

【讨论】:

  • @AndonM.Coleman:它存在于 Xcode 附带的标准 GLUT 中。不信就去看看吧。它位于 Xcode 5.1 附带的 MacOSX10.8.sdkMacOSX10.9.sdkglut.h 的第 186 行。
  • 是的,你是对的,对不起。我确实看过,但我面前的 OS X 机器现在运行 10.6,所以现在我考虑到常量不存在也就不足为奇了:PI 将那个常量与glutInitContextVersion (...)(FreeGLUT 的解决方案)混合在一起.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 2014-02-26
  • 2012-12-11
  • 2013-12-27
相关资源
最近更新 更多