OpenGL32库

use*_*416 1 c++ opengl

我缺少opengl32库(更多细节:mingw32 w64缺少OpenGL32 lib).我有几个与此库相关的问题:

  1. 为什么我需要opengl32静态库(我有.dll)?
  2. 为什么视频卡供应商不提供此库?
  3. 谁应该提供它?
  4. 是否有opengl32库的源代码?
  5. 如果有opengl32,为什么我需要GLEW或其他GL库实现(使用OpenGL的所有功能)?为什么opengl32不能具备所有必需的GL实现?

dat*_*olf 7

为什么我需要opengl32静态库(我有.dll)?

它为链接器提供符号表.符号表告诉链接器库提供了哪些函数,以便链接器知道如何将程序中使用的符号绑定到链接的库.

请注意,在除Windows之外的其他OS上,"DLL"也提供符号表.

为什么视频卡供应商不提供此库?

因为库是驱动程序系统的OS接口的一部分

谁应该提供它?

DLL:操作系统供应商.符号表库:编译器供应商.

是否有opengl32库的源代码?

OpenGL本身就是一个规范.您的计算机上有一个实现和一个接口.该接口是操作系统的一部分.因此,在封闭源操作系统上,没有可用的源代码,但在开源操作系统上有.

如果有opengl32,为什么我需要GLEW或其他GL库实现(使用OpenGL的所有功能)?

opengl32.dll只是驱动程序系统的一个接口.该接口需要是OpenGL功能的最小公分母,因此可以通过通用接口提供各种OpenGL版本和功能.但是,您还希望能够访问扩展机制所存在的更新和前沿功能.

为什么opengl32不能具备所有必需的GL实现?

opengl32.dll是操作系统的一部分,如果它是操作系统的一部分,那么每个新版本的OpenGL都需要更新操作系统.事实上,这就是MacOS X的情况.

此外,OpenGL 实现是驱动程序的一部分,而不是DLL.