c++ - 如何获取 GL 库/头文件?

标签 c++ opengl

#include <gl\gl.h> 
#include <gl\glu.h> 
#include <gl\glaux.h>

这是一个示例,但是从哪里获取 GL header ?

最佳答案

窗口

在 Windows 上,您需要包含 gl.h OpenGL 1.1 支持的 header 和针对 OpenGL32.lib 的链接。两者都是 Windows SDK 的一部分.此外,您可能需要以下 header ,您可以从 http://www.opengl.org/registry 获得这些 header 。 .

  • <GL/glext.h> - OpenGL 1.2 及更高版本的兼容性配置文件和扩展接口(interface)..
  • <GL/glcorearb.h> - OpenGL 核心配置文件和 ARB 扩展接口(interface),如 OpenGL 4.3 规范的附录 G.2 中所述。不包括仅在兼容性配置文件中找到的接口(interface)。
  • <GL/glxext.h> - GLX 1.3 及更高版本的 API 和 GLX 扩展接口(interface)。
  • <GL/wglext.h> - WGL 扩展接口(interface)。

Linux

在 Linux 上,您需要链接 libGL.so,这通常是指向 libGL.so.1 的符号链接(symbolic link),而 libGL.so.1 仍是指向作为图形驱动程序一部分的实际库/驱动程序的符号链接(symbolic link)。例如,在我的系统上,实际的驱动程序库名为 libGL.so.256.53,这是我使用的 nvidia 驱动程序的版本号。您还需要包含 gl.h header ,通常是 Mesa 或 Xorg 包的一部分。同样,您可能需要 glext.hglxext.h来自 http://www.opengl.org/registry . glxext.h包含 GLX 扩展,相当于 wglext.h在 Windows 上。

如果您想使用 OpenGL 3.x 或 OpenGL 4.x 功能而没有移入 GL_ARB_compatibility 的功能扩展,使用新的 gl3.h来自注册表网页的标题。它取代了gl.h还有glext.h (只要您只需要核心功能)。

最后但并非最不重要的,glaux.h不是与 OpenGL 关联的 header 。我假设你已经阅读了糟糕的 NEHE 教程并且只是跟着它去做。 Glaux 是一个非常过时的 Win32 库 (1996),用于加载未压缩的位图。使用更好的东西,比如 libPNG,它也支持 alpha channel 。

关于c++ - 如何获取 GL 库/头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933027/

相关文章:

c++ - 如何在结构中存储二进制文件数据?

opengl - 打开全屏 OpenGL 窗口

c - 通过保持光源固定来旋转 OpenGl 中的金字塔

c++ - 为什么有些程序员使用字符串作为输入然后对其进行转换?

c++ - 二维数组搜索算法优化

c++ - 虚幻引擎 4.18.2 "no default constructor exists for class "UUserWidget""

c++ - 在动画 Opengl c/c++ 方面需要帮助

c++ - 如何将着色器中生成的 float 据(而非颜色)拉回到 CPU?

c++ - 获取错误 : "error: conflicting types for ‘call_celsius’ "and "note: previous implicit declaration of ‘call_celsius’ was here"

c++ - 为什么双重调度在 C++ 中不起作用?