如何获取GL库/标题?

cdx*_*dxf 66 c++ opengl

#include <gl\gl.h> 
#include <gl\glu.h> 
#include <gl\glaux.h>
Run Code Online (Sandbox Code Playgroud)

这是一个例子,但在哪里获得GL标题?

小智 77

视窗

在Windows上,您需要包含gl.hOpenGL 1.1支持的标头并链接到OpenGL32.lib.两者都是Windows SDK的一部分.此外,您可能需要以下标题,您可以从http://www.opengl.org/registry获取.

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

Linux的

在Linux上,您需要链接libGL.so,它通常是libGL.so.1的符号链接,它是实际库/驱动程序的符号链接,它是图形驱动程序的一部分.例如,在我的系统上,实际的驱动程序库名为libGL.so.256.53,这是我使用的nvidia驱动程序的版本号.您还需要包含gl.h标题,标题通常是Mesa或Xorg包的一部分.同样,你可能需要glext.hglxext.hhttp://www.opengl.org/registry.glxext.h持有GLX扩展,相当于wglext.hWindows.

如果要使用OpenGL 3.x或OpenGL 4.x功能而没有移动到GL_ARB_compatibility扩展中的功能,请使用gl3.h注册表网页中的新标头.它取代了gl.hglext.h(只要你只需要核心功能).

最后但并非最不重要,glaux.h不是与OpenGL关联的标头.我假设你已经阅读了可怕的NEHE教程,并且随之而来.Glaux是一个非常过时的Win32库(1996),用于加载未压缩的位图.使用更好的东西,比如libPNG,它也支持alpha通道.

  • MacOS 呢? (4认同)
  • 注意:上面的 Windows SDK 版本是 Windows 7。只需检查最新版本的 Windows SDK,(现在是 8.1,很快就是 10)。检查文档以了解向后和向前兼容性。 (2认同)

Ami*_*deh 37

Linux的

sudo apt-get update
OpenGL: sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev
Run Code Online (Sandbox Code Playgroud)

视窗

找到它放置库和头文件的Visual Studio文件夹,将lib文件下载并复制到lib文件夹,将头文件下载到头文件.然后将dll文件复制到system32.然后你的代码将100%运行.

另外视窗:对于那些包括你只需要下载glut32.lib,glut.h,glut32.dll.

  • debian/ubuntu /其他衍生品!= linux (18认同)
  • 这个答案已经有 10 年历史了,但仍然对我有帮助(Ubuntu LTS)。 (2认同)
  • @CoatedMoose 只是不要说什么不是,我们不需要知道什么不是,你能有一天说出它实际上是什么吗? (2认同)

ann*_*nno 8

在Visual Studio中:

//OpenGL
#pragma comment(lib, "opengl32")
#pragma comment(lib, "glu32")
#include <gl/gl.h>
#include <gl/glu.h>
Run Code Online (Sandbox Code Playgroud)

标题位于SDK中:C:\ Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl


Dir*_*tel 5

什么操作系统?

在 Ubuntu 上,我有

$ dpkg -S /usr/include/GL/gl.h 
mesa-common-dev: /usr/include/GL/gl.h
$ 
Run Code Online (Sandbox Code Playgroud)

但不是 a) 大写和 b) 向前/向后斜线的区别。您的示例在使用反斜杠时可能是错误的。