OpenGL32 library

OpenGL32 library

本文关键字:library OpenGL32      更新时间:2023-10-16

我缺少opengl32库(更多详细信息:mingw32 w64缺少opengl32库)。我有几个问题与这个图书馆有关:

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

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

它为链接器提供了符号表。符号表告诉链接器库提供了哪些函数,这样链接器就知道如何将程序中使用的符号与链接的库联系起来。

请注意,在除windows之外的其他操作系统上,"DLL"也提供符号表。

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

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

谁应该提供?

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

有opengl32库的源代码吗?

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

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

opengl32.dll只是驱动程序系统的一个接口。该接口需要是OpenGL功能的最小公约数,以便通过通用接口提供广泛的OpenGL版本和功能。但是,您也希望能够访问更新的、出血边缘的功能,对于这些功能,存在扩展机制。

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

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

OpenGL实现也是驱动程序的一部分,而不是DLL。

  1. 它不是一个静态库,而是一个动态链接到DLL的库
  2. 因为它或多或少是操作系统的一部分。从OpenGL32.dll导出的符号往往是标准的(一组特定的gl...函数)和特定于Microsoft的(至少是wgl函数)。众所周知的供应商之间没有差异
  3. 微软确实提供了它及其编译器。任何其他编译器供应商也应该这样做,因为libs可能在某种程度上是特定于编译器的
  4. Mesa是一个开源的OpenGL实现,所以你会得到最接近的
  5. 你不能,你可以手动获取字符串和函数指针,这非常乏味。GLEW等人为您完成了大部分功能检查和初始化。它们不会做任何你可以直接用OpenGL32.dll做的事情,但它们确实让生活变得更轻松