如何在Mac上使用gcc和openGL?

13z8s7eq  于 5个月前  发布在  Mac
关注(0)|答案(3)|浏览(66)

我试图在我的Mac上使用gcc从命令行运行this openGL示例。安装了XCode,gcc多次与其他程序一起使用(w\o图形)。
下面是我运行的this主题:

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上正确使用OpenGL和gcc?

nx7onnlm

nx7onnlm1#

你的第一个问题是Apple的Framework基础设施通过将OpenGL头文件放置在非标准路径中来破坏代码的可移植性。在Apple平台上,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选项编译。

fnvucqvd

fnvucqvd2#

关于小牛使用包括

#include <GLUT/glut.h>

字符串
如果你用下面的代码行编译,

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

cunj1qz1

cunj1qz13#

试试这个:

1.确保已包含所需库

  • 点击项目导航器上的项目名称->转到构建阶段
  • 展开Link Binary with Libraries->单击“+”按钮并选择以下框架:x1c 0d1x
    2.更改include语句
  • #include <GLUT/glut.h>
    3.删除弃用警告
  • #define GL_SILENCE_DEPRECATION//使用这个来消除弃用警告

相关问题