标识符" "未定义

identifier " " is undefined

本文关键字:未定义 标识符      更新时间:2023-10-16

我正在编码一个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);时,我会收到错误:标识符"着色器"是未定义的,我如何解决此问题?

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

我想您正在研究类似于https://github.com/bennyqbd/modernopengltutorial的事情。这是m_shaders https://github.com/bennyqbd/modernopengltutorial/blob/master/master/shader.h#l29的声明。您正在使用shaders