为什么会出现这些错误?
error: 'GL_VERTEX_SHADER' was not declared in this scope
error: 'glCreateShader' was not declared in this scope
代码:
GLuint vs = glCreateShader(GL_VERTEX_SHADER);
是的,我确实有 glut 的包含文件。
为什么会出现这些错误?
error: 'GL_VERTEX_SHADER' was not declared in this scope
error: 'glCreateShader' was not declared in this scope
代码:
GLuint vs = glCreateShader(GL_VERTEX_SHADER);
是的,我确实有 glut 的包含文件。
glGetString(GL_VERSION)
返回什么?
CreateShader
不在 GLUT 中,而是在 OpenGL 2.0 中。如果你的“包含到 GLUT 的头文件”出于某种原因没有包含 gl.h
,或者你的 GL 版本低于 2.0,则头文件将不会声明它。
我还建议检查你的 gl.h
文件,看看是否实际声明了 CreateShader
。
编辑:这个 OpenGL 头文件版本的问题似乎是 Windows 中普遍存在的问题。大多数人建议使用 GLEW 或其他扩展加载库来解决这个问题。
glGetString(GL_VERSION)
返回 2.0.5279 WinXP Release
。即使包含了gl.h
,它仍然无法工作。奇怪的是,glCreateShader
不在gl.h
中。为什么没有呢? - Daniel Node.jsundefined reference to '_imp____glewCreateShader'
。 - Daniel Node.js#include <windows.h> #include <GL/glew.h> <GL/glut.h>
这就是我要包含的全部内容。 - Daniel Node.js// after initializing window
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}