#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.h
和 glxext.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/