有很多问题可以解释 API 和库之间的区别,例如this one和this one。
我知道库是一段代码,您可以从自己的代码中调用它,以帮助您更快/更轻松地做事。API 是用户可以在其代码中使用的类和方法库的一部分。根据我的理解,我将 OpenGL 归类为库而不是 API,但是当我阅读一本书时,它说 OpenGL 不是库,而是 API。
你能告诉我是哪个吗?
OpenGL 是一个 API。为什么?因为 API 是指定以某种方式运行的函数和令牌的列表。API 写在规范中。OpenGL 的规范可以在http://opengl.org/registry找到,规范本身并不是您可以在计算机系统上安装和运行的东西。
OpenGL 不是一个库。为什么?因为规范只是规范文本,您不能单独使用。请注意,在 OpenGL 的规范文档中,还有可用于编译 OpenGL 程序的头文件。但是缺少的是可以链接的实际代码(库)。可以链接并且行为类似于 OpenGL 规范指定的东西称为实现。但是实现与非常相同的 OpenGL 规范相关联,并作为操作系统图形基础设施的一部分提供。