标识符“”未定义

时间:2017-03-04 03:56:06

标签: c++ opengl

我正在编写一个3D opengl测试应用程序,我有一个这样的函数设置:

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);时,我收到错误:标识符“着色器”未定义,我该如何解决此问题?

1 个答案:

答案 0 :(得分:0)

你忘记了#include "shader.h"。这将解决您的问题。

我猜你正在研究类似https://github.com/BennyQBD/ModernOpenGLTutorial的东西。以下是m_shaders https://github.com/BennyQBD/ModernOpenGLTutorial/blob/master/shader.h#L29的声明。您正在使用shaders