如何在从 Linux 移植的C++项目中使用 Open GL

How do I use Open GL in a C++ project that I am porting from Linux

本文关键字:项目 GL Open C++ Linux      更新时间:2023-10-16

我只是尝试在Mac上编译一个开源C++应用程序。我收到错误 GL/gl.h 文件未找到。我知道这意味着它找不到需要编译和运行的打开的 GL 库。我对下一步该做什么感到困惑,因为

  1. 似乎OS X包括对open gl的内置支持。没有什么可下载的。
  2. OSX 和 Linux 上的 OpenGL 的头文件名似乎可能不同(OpenGL headers for OS X & Linux )

所以我对下一步该怎么做感到困惑。我是否下载OpenGL并将其链接到我的项目?我是否将 xcode 配置为使用 OpenGL 的本机版本?我是否更改标题?

有人可以提供更多的方向。这个答案给出了Windows/linux的答案 - 但不是OS X:如何获取 GL 库/标头?

苹果认为,如果它们与其他人不兼容,那将是聪明的,并将OpenGL标头放在一个名为OpenGL而不仅仅是GL的目录中。所以你必须使用

#include <OpenGL/gl.h>

在苹果系统上和

#include <GL/gl.h>

其他地方。编译器预定义的预处理器宏是你的朋友。

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

"OS X包含对OpenGL的内置支持"是正确的!

窗口也这样做!但问题是Windows只允许你访问OpenGL 1.1功能...以上所有内容都必须通过扩展来完成!OpenGL扩展可以在这里找到:http://www.opengl.org/registry/

但是因为设置这些扩展非常无聊,所以您可以使用 GLEW 或类似的东西......

另一个非常常见的问题是如何在Windows上正确打开OpenGL上下文!如果您遵循像NeHe这样的旧教程,那么您现在会遇到一些问题。解决方案是使用GLFW,过剩,自由过剩或类似的东西......

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