【问题标题】:FreeGLUT on Mac OS X LionMac OS X Lion 上的 FreeGLUT
【发布时间】:2012-06-02 22:12:25
【问题描述】:

一些上下文:我正在通过tutorial 使用 OpenGL。本教程需要几个库才能工作。其中一个库是 FreeGLUT。我在 OS X 上使用 Lion。

我已经下载了 FreeGLUT 并按照 instructions 进行安装,但是当我运行 'make all' 命令时,我得到了这个错误:

error: GL/gl.h: No such file or directory
error: GL/glu.h: No such file or directory

我已经在互联网上搜索了一个解决方案,我只能从中了解到编译器无法找到这些文件,并且需要更改编译器使用的路径。

编辑: 好的,我发现它不是编译器,而是由于某种原因这些文件不存在。打算尝试找出他们不在那里的原因。

【问题讨论】:

  • 我对Mac不熟悉,但是你需要同时安装OpenGL和GLU开发库来构建FreeGLUT,这取决于它们。
  • 使用 Xcode,您可以将一个库添加到项目中,而 OpenGL 是一个可以添加的库,所以我假设这些文件已安装。关于我如何去做的任何想法?呵呵……

标签: macos opengl freeglut


【解决方案1】:

在 Mac 上,这些头文件的位置与在 Linux 上不同。所以在代码中,替换为:

#include <GL/gl.h>
#include <GL/glu.h>

用这个:

#include <OpenGL/gl.h>
#include <OpenGL/glu.h>

这应该可以解决您的问题。

【讨论】:

  • 您知道我需要在 FreeGLUT 文件的哪个位置进行更改吗?
  • 不,我不需要,但据我所知,您不需要它。 GLUT 已预装在 OS X 上,因此您可以使用机器上已有的 GLUT 按照教程进行操作,代码应该完全相同。
  • 我得到的印象是,FreeGLUT 与 GLUT 非常不同,并且示例无法按所写的那样工作。如果我不能让这个工作,我会尝试使用 GLUT。
  • 所以我找到了需要进行更改的地方,但现在我收到了一个新错误:“GL/glx.h:没有这样的文件或目录”(同样的事情),除了这次我将其更改为 OpenGL/glx.h 错误仍然出现...
  • @jasonaburton:FreeGLUT 与 GLUT 相同。 FreeGLUT 实现了许多相同的功能,但它还添加了更多 GLUT 中从未有过的功能。我不知道 OSX 附带了什么,但它可能是原始 GLUT 的黑客版本,它可能不支持任何 FreeGLUT 扩展。
【解决方案2】:

通过 macports 安装 freeglut,修改 premake4.lua 使其在 glsdk 中构建非官方的 OpenGL SDK,而不是 freeglut。手动复制并粘贴freeglut的lib和include文件夹(通过macports)并修改framework.cpp(framework文件夹)内的#include_GL/freeglut.h>,以便找到标题。还填写文件夹名称中的空白,例如Tut 13 冒名顶替者 -> Tut_13_Impostors

对我有用

更多详情here

【讨论】:

    【解决方案3】:

    该教程 OpenGLBook.com 基于 OpenGL 4.0 核心上下文,并以 3.3 核心上下文作为替代方案。充其量在 OS X(使用 Mountain Lion)上,您将获得与 3.3 足够相似的 3.2 核心上下文 - 但不幸的是,这与 GLUT 不兼容 - OS X 包括原始的 GLUT(由于许可问题未修改),这需要很多在 3.2 核心上下文中不可用的过时 OpenGL 函数。

    如果您想在 OS X(10.6.3 或更高版本)上完成本教程,而无需处理许多烦人的不兼容问题,并且使用面向未来的 OpenGL,我建议您安装最新版本的 XQuartz(2.7.2 或更高版本) ),其中包括 FreeGLUT(从 2.8.0 开始)。

    https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.11.dmg

    【讨论】:

    • 嗨,我无法使用 FreeGlut(通过 XQuartz)获得 3.2 上下文。我能够毫无问题地获得 2.1 上下文,但我只能通过 Cocoa 获得 3.2。我很想知道这是否可以做到。
    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 2012-03-22
    • 2012-04-05
    • 2012-02-08
    • 2011-10-19
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    相关资源
    最近更新 更多