如何在Mac上使用gcc和openGL?

14

我正在尝试在Mac上使用gcc从命令行运行这个openGL示例。XCode已安装,gcc已经多次与其他程序一起使用过(没有图形界面)。

按照这个主题的建议,我运行了以下命令:

g++ 1.cpp -framework OpenGL -lGLU -lglut

并获得:

1.cpp:12:21: fatal error: GL/glut.h: No such file or directory

我在/System/Library/Frameworks/GLUT.framework/Headers/找到了glut.h,并注意到它的结构不同(不是GL文件夹)。但是即使删除GL/并使用-I/System/Library/Frameworks/GLUT.framework/Headers也没有帮助太多...

所以我想知道,在Mac上如何正确地使用gcc与openGL?

2个回答

39

你面临的第一个问题是,苹果的框架基础设施通过将OpenGL头文件放置在非标准路径中来积极破坏代码的可移植性。 在苹果平台上,OpenGL头文件位于名为OpenGL而不是GL的目录中。

因此,为了能够可移植地包含这些头文件,您需要编写:

#ifdef __APPLE__
#include <OpenGL/gl.h>
#else
#include <GL/gl.h>
#endif

你的另一个问题是,GLUT不是OpenGL的一部分,而是独立的第三方库,不再包含在OpenGL框架中。你需要使用GLUT框架。当然,这个框架也使用非标准的包含路径:

#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

使用-framework OpenGL -framework GLUT选项进行编译。


5
在 Mavericks 上使用 include:
#include <GLUT/glut.h>

如果您使用以下命令进行编译,则可以正常工作

g++ 1.cpp -framework OpenGL -framework GLUT

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