我在 Ubuntu 上,使用 OpenGL、GLEW 和 GLFW 编写应用程序。我使用 Eclipse 作为我的 IDE,但在尝试使用glGenRenderbuffer等函数时遇到问题。我在 Windows 下设置了一个非常相似的结构,但无法让它在 Linux 上运行。
我正在链接到库glfw和GLEW。我能够编译和运行我的应用程序的一部分,并且可以初始化 GLFW 和 GLEW。从这些测试运行中,我了解到以下内容:
OpenGL version: 4.2.0 NVIDIA 304.64
Using GLEW 1.6.0
但是,我无法编译函数glGenRenderbuffer(或其他帧缓冲区函数)。我曾尝试将 EXT 和 ARB 添加到名称中,以及在没有任何运气的情况下使用 glex.h。据我所知,GLEW 的目的是处理所有的扩展问题,对吧?
包含的源文件 ( VolumeRenderer.cpp ) 是这样完成的:
#include <glm/gtc/matrix_transform.hpp>
#include <VolumeRenderer.h>
#include <GL/glew.h>
#include <GL/glfw.h>
再往下,我正在尝试使用这样的功能(当然只是部分完整的功能):
bool VolumeRenderer::InitFramebuffers()
{
glGenRenderbuffers(1, &renderBufferObject_);
return true;
}
我得到的只是“无法解析函数'glGenRenderBuffers'”。
查看我包含的 GL/glew.h 标头,我发现了以下几行:
#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers)
#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT)
但是编译器仍然找不到该函数。有什么我忘记的吗,或者我可以运行一些测试和检查来看看发生了什么?