【发布时间】:2013-12-28 21:11:47
【问题描述】:
我对着色器和 openGL 有疑问。每当我尝试使用它们(即使是简单的函数,如 glCreateShader 或 glCreateProgram)时,我的编译器 (MinGW 4.6.1) 都会告诉我它们尚未定义。
甚至 GLEW 也无法正确编译。例如,显然编译器不知道 GLchar。
另一方面,几乎所有其他重要的 OpenGL 函数(与着色器无关)似乎运行良好,没有任何问题。奇怪的是,当我查看 gl.h 等时,我看不到定义的着色器函数,所以也许编译器是对的。我可以有一个 OpenGL 标头的拙劣副本,还是我可能做错了什么?
【问题讨论】:
-
Microsoft Windows 附带了一个实现 OpenGL 1.1 的库和头文件。如果没有 GLEW,或者在运行时手动加载扩展,您将无法访问 GLSL(OpenGL 2.0 中的核心,扩展始于 OpenGL 1.4)。可安装客户端驱动程序(基本上是您的显示驱动程序附带的)有责任在 Windows 上将 OpenGL 扩展至 1.1 以上,但此扩展是在运行时完成的,而不是在编译/链接时完成的。