Opengl glGenFramebuffers、glBindFramebuffer等未声明

Opengl glGenFramebuffers、glBindFramebuffer等未声明,opengl,framebuffer,fbo,undeclared-identifier,Opengl,Framebuffer,Fbo,Undeclared Identifier,我正在尝试设置帧缓冲区对象,但出现错误。glGenFramebuffers总是未声明的,其他类似的东西如glBindFramebuffer也是如此 我相信这个问题与进口有关,但我不确定如何着手解决这个问题。有可能glew设置不正确,但我还没有找到一个简单的解释来说明如何完全设置它 下面是失败的代码 myBuffer = 0; glGenFramebuffers(1, &myBuffer); glBindFramebuffer(GL_FRAMEBUFFER, myBuffer); g

我正在尝试设置帧缓冲区对象,但出现错误。glGenFramebuffers总是未声明的,其他类似的东西如glBindFramebuffer也是如此

我相信这个问题与进口有关,但我不确定如何着手解决这个问题。有可能glew设置不正确,但我还没有找到一个简单的解释来说明如何完全设置它

下面是失败的代码

myBuffer = 0;
glGenFramebuffers(1, &myBuffer);
glBindFramebuffer(GL_FRAMEBUFFER, myBuffer); 


glGenTextures(1, &renderedTexture);

// Bind to new texture
glBindTexture(GL_TEXTURE_2D, renderedTexture);

// Blank image
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGB, 1024, 768, 0,GL_RGB, GL_UNSIGNED_BYTE, 0);


glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);


glGenRenderbuffers(1, &dBuffer);
glBindRenderbuffer(GL_RENDERBUFFER, dBuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, 1024, 768);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, dBuffer);



// Set "renderedTexture" as colour attachement #0
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, renderedTexture, 0);

DrawBuffers[2] = {GL_COLOR_ATTACHMENT0};

    glDrawBuffers(1, DrawBuffers); // "1" is the size of DrawBuffers
    // Check framebuffer is ok
      if(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
      return false;
这些是我的进口货

#include "WindowingSystem.h"           
#include <math.h>
#include <vector>
#include <windows.h>
#include <GL/glut.h>
#include <iostream>
#include <string>
#include <sstream>    
#include <windows.h>
#include <mmsystem.h>
#include <GL/glu.h>
#include <GL/gl.h>
#包括“WindowingSystem.h”
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
这是我的链接器 -lglut32-lglu32-lglew32-lopengl32-lwinmm

这里有一个链接,指向我的编译器选项的图像

我在Windows机器

上使用32位版本的DEV C++ 下面是指向整个代码文件的链接


请询问更多信息

您似乎已经正确地链接了
glew32.lib
,但我看不到您实际上包含了
,而不是
。后者只声明OpenGL 1.1之前的函数,而前者为所有扩展和核心功能>1.1(如FBO)提供声明。

您似乎已经正确地链接到
glew32.lib
,但我看不到您实际上包含
,而不是
。后者只声明OpenGL 1.1之前的函数,而前者为所有扩展和核心功能>1.1(如FBO)提供声明。

我在我的windows xp virtualbox上重新安装了DevCpp。然后,我像往常一样安装了glut,glew devpack也安装了glut。然后它马上就起作用了。我现在使用的是4.9.9.2版

我在windows xp virtualbox上重新安装了DevCpp。然后,我像往常一样安装了glut,glew devpack也安装了glut。然后它马上就起作用了。我现在使用的是版本4.9.9.2

OK,所以当我把GL/glew.h放进去时,我得到了一个错误,还有另一个说法“84:2 C:\Dev Cpp\include\GL\glew.h#error GL.h包含在glew.h之前”。我尝试在glu.h之前包含glew,但后来我得到了“中止(程序集合2)”@AdamKenworthy尝试在
之前也包含它(因为我认为这可能也会带来
gl.h
)。将glew移到glut之上会给我同样的排序错误。我在顶部有“include”WindowingSystem.h,它本身也有“include”。这是否意味着包括windowingsystem在我的主文件中也包括glut?@AdamKenworthy好吧,如果它本身包括
glut.h
,那么当然。请始终记住,include只做简单而愚蠢的文本替换。我将glew.h放入windowingSystem并得到“中止(程序集合2)”。没有其他错误。所以我真的不知道哪里出错了好吧,所以当我把GL/glew.h放进去时,我得到了一个错误,还有另一个说法“84:2 C:\Dev Cpp\include\GL\glew.h#error GL.h包含在glew.h之前”。我尝试在glu.h之前包含glew,但后来我得到了“中止(程序集合2)”@AdamKenworthy尝试在
之前也包含它(因为我认为这可能也会带来
gl.h
)。将glew移到glut之上会给我同样的排序错误。我在顶部有“include”WindowingSystem.h,它本身也有“include”。这是否意味着包括windowingsystem在我的主文件中也包括glut?@AdamKenworthy好吧,如果它本身包括
glut.h
,那么当然。请始终记住,include只做简单而愚蠢的文本替换。我将glew.h放入windowingSystem并得到“中止(程序集合2)”。没有其他错误。所以我真的不知道哪里出了问题