如何在C+中使用OpenGL+;我正在从Linux移植的项目 我只是尝试在我的Mac上编译一个开源C++应用程序。我发现错误GL/GL.h文件未找到。我知道这意味着它找不到OpenGL库,需要编译和运行它。我不知道下一步该做什么,因为 似乎OSX包含了对OpenGL的内置支持。有很多东西可以下载 似乎OSX和Linux上的OpenGL的头文件名可能不同( )

如何在C+中使用OpenGL+;我正在从Linux移植的项目 我只是尝试在我的Mac上编译一个开源C++应用程序。我发现错误GL/GL.h文件未找到。我知道这意味着它找不到OpenGL库,需要编译和运行它。我不知道下一步该做什么,因为 似乎OSX包含了对OpenGL的内置支持。有很多东西可以下载 似乎OSX和Linux上的OpenGL的头文件名可能不同( ),c++,xcode,macos,opengl,C++,Xcode,Macos,Opengl,所以我不知道下一步该怎么办。我是否下载OpenGL并将其链接到我的项目?我是否将xcode配置为使用OpenGL的本机版本?我要更改标题吗 有人能提供多一点方向吗。这个答案给出了windows/linux的答案——但不是OS X: 苹果认为,如果它们与其他所有人都不兼容,那么将OpenGL标题放在一个名为OpenGL的目录中是明智之举,而不仅仅是GL。所以你必须使用 #include <OpenGL/gl.h> #包括 关于苹果系统和 #include <GL/gl.h&g

所以我不知道下一步该怎么办。我是否下载OpenGL并将其链接到我的项目?我是否将xcode配置为使用OpenGL的本机版本?我要更改标题吗

有人能提供多一点方向吗。这个答案给出了windows/linux的答案——但不是OS X:
苹果认为,如果它们与其他所有人都不兼容,那么将OpenGL标题放在一个名为
OpenGL
的目录中是明智之举,而不仅仅是
GL
。所以你必须使用

#include <OpenGL/gl.h>
#包括
关于苹果系统和

#include <GL/gl.h>
#包括
其他地方。编译器预定义的预处理器宏是您的朋友

#ifdef __APPLE__
#  include <OpenGL/gl.h>
#else
#  include <GL/gl.h>
#endif/*__APPLE__*/
苹果公司__ #包括 #否则 #包括 #endif/*\uu苹果__*/ “OSX包含对OpenGL的内置支持”是正确的

Windows也有!但问题是Windows只允许您访问OpenGL 1.1函数。。。以上的一切都必须通过扩展来完成!可以在以下位置找到OpenGL扩展:

但是因为设置这些扩展非常枯燥,所以您可以使用类似的东西

另一个非常常见的问题是如何在Windows上正确打开OpenGL上下文!如果你像以前那样学习教程,你现在会遇到一些问题。解决方法是使用像glut、freeglut或类似的东西


有了这对“上下文+扩展”,您将能够轻松创建上下文并使用您可能在OS X上使用的“现代OpenGL”函数中的任何函数。我特别喜欢“GLFW+GLEW”

-framework OpenGL
开关添加到编译命令中。您忘记提到愚蠢的
-framework OpenGL
编译器开关。过了一段时间,OSX确实会对你产生影响,直到你被迫使用Objective C:)@AndonM.Coleman:嗯,没错。我永远不会明白这些框架有什么了不起的地方。图书馆怎么了?MacOS X是为数不多的几个我从未完全了解它的系统之一。是的,我可以为它编程,我可以使用它。但我真的无法考虑它的许多设计选择。框架只是将标题、库和相关资源打包成一个包的一种方便方式。它还支持同时安装多个版本的库以及其他方便的功能。它比将
/usr/local/include
中的所有
.h
文件和所有
.dylib
文件转储到
/usr/local/lib
中更干净。框架的好处是它们将头、库、文档、资源等打包到一个位置。不要将它们分散在/usr/local/share/man、/usr/local/include、/usr/local/lib等等。您可以下载/打包一个框架作为一个单独的包,并将其添加到您的环境中,而不需要任何混乱或麻烦。但是,学习这些东西如何工作的复杂性增加了,因为它是专有的,实际上破坏了许多便利因素:-\