在Mac OS X Lion上使用FreeGLUT

12

一些背景:我正在学习使用OpenGL的教程。这个教程需要一些库才能运行,其中之一是FreeGLUT。我使用Lion操作系统的OS X。

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

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

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

编辑:好的,我已经弄清楚问题不在编译器上,而是因为某种原因那些文件不存在。我要尝试找出它们为什么不存在。


我不熟悉Mac,但是你需要安装OpenGL和GLU开发库来构建FreeGLUT,因为它们是其依赖项。 - Bojangles
使用Xcode,您只需将库添加到项目中,OpenGL是可以添加的库,因此我认为这些文件已安装。有什么想法吗?呵呵... - jasonaburton
3个回答

16
在 Mac 上,这些头文件的位置与 Linux 上不同。因此,在代码中,请将此替换为:
#include <GL/gl.h>
#include <GL/glu.h>

使用这个:

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

这样应该可以解决你的问题。


1
不需要,据我所知,你不需要它。GLUT已经预装在OS X上,因此您可以使用已经安装在计算机上的GLUT跟随教程进行操作,代码应该完全相同。 - user377628
1
我得到的印象是,FreeGLUT与GLUT非常不同,因此示例代码无法正常工作。如果我无法解决这个问题,我将尝试使用GLUT。 - jasonaburton
这很奇怪。我对FreeGLUT不是很熟悉,所以以前没有遇到过这种情况。我猜测你机器上安装的GLUT版本与你下载的FreeGLUT不兼容。老实说,如果我是你,我会使用普通的GLUT。 - user377628
1
@jasonaburton:FreeGLUT与GLUT不是同一物。FreeGLUT实现了许多相同的功能,但还添加了许多从未出现在GLUT中的功能。我不知道OSX随附的是什么,但它可能是原始GLUT的破解版本,它可能不支持任何FreeGLUT扩展。 - Nicol Bolas
跨平台解决方案:#ifndef __APPLE__ #include #else #include #endif - Birchlabs
显示剩余5条评论

0

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

这对我有效。

更多细节在此处


0

那个教程OpenGLBook.com是基于OpenGL 4.0核心上下文,3.3核心上下文作为备选方案。在OS X(Mountain Lion)上,最好能获得类似于3.3的3.2核心上下文 - 但不幸的是,这与GLUT不兼容 - OS X包括原始的GLUT(由于许可问题未经修改),需要许多已过时的OpenGL函数,在3.2核心上下文中不可用。

如果您想在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。我很想知道是否可以做到这一点。 - Angus Forbes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接