标识符"未定义 [英] identifier " " is undefined

查看:151
本文介绍了标识符"未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编码一个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.

这篇关于标识符&quot;未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆