标识符"未定义 [英] identifier " " is undefined
问题描述
我正在编码一个3D opengl测试应用程序,我具有如下设置的功能:
I am coding a 3D opengl test application, I have a function set up like this:
Shader::Shader(const std::string& fileName)
{
program = glCreateProgram();
shaders[0] = CreateShader(LoadShader(fileName + ".vs"), GL_VERTEX_SHADER);
shaders[1] = CreateShader(LoadShader(fileName + ".fs"), GL_FRAGMENT_SHADER);
for (unsigned int i=0; i < NUM_SHADERS; i++)
glAttachShader(program, shaders[1]);
glBindAttribLocation(program, 0, "position");
glLinkProgram(program);
}
但是,当我尝试声明shaders[0] = CreateShader(LoadShader(fileName + ".vs"), GL_VERTEX SHADER);
时,出现错误:标识符着色器"未定义,该如何解决?
However when I try to declare shaders[0] = CreateShader(LoadShader(fileName + ".vs"), GL_VERTEX SHADER);
I get the error: identifier "shaders" is undefined, how do I fix this?
推荐答案
您忘记了#include "shader.h"
.这样可以解决您的问题.
You forgot #include "shader.h"
. This will fix your issue.
我猜您正在从事类似于> https://github.com/BennyQBD/ModernOpenGLTutorial .这是m_shaders
的声明 https://github.com/BennyQBD/ModernOpenGLTutorial/blob/master/shader.h#L29 .您使用的是shaders
.
I guess you are working on something similar to https://github.com/BennyQBD/ModernOpenGLTutorial. Here is the declaration for m_shaders
https://github.com/BennyQBD/ModernOpenGLTutorial/blob/master/shader.h#L29. You are using shaders
instead.
这篇关于标识符"未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!