'glGenBuffers'未在此范围内声明。 Windows 7. Qt 4.8.1

时间:2013-04-10 18:02:18

标签: c++ qt opengl glew

'glGenBuffers' was not declared in this scope

这是我在尝试使用该metod后得到的错误。如何添加适当的库或其他什么以及我应该添加什么以及如何添加。我正在使用win 7和qt 4.8.1。我读过关于GLEW但我不知道如何将它添加到windows或qt。

2 个答案:

答案 0 :(得分:5)

这是一个FAQ。 Windows定义OpenGL ABI(B表示二进制接口)仅限于OpenGL-1.1版本 - 除此之外的任何内容都必须使用扩展加载机制在运行时加载。最容易使用像GLEW这样的包装器库。

  

我读过关于GLEW但我不知道如何将其添加到Windows或qt。

如果您想使用任何第三方库,您需要学习如何操作。归结为将库及其标头安装在某个系统范围的目录中,但在常规编译器树之外,并将这些目录添加到包含和库搜索路径。

答案 1 :(得分:2)

我使用此代码将GLEW和Glut包含在跨平台开发中:

#ifndef GL_H
#define GL_H

#ifdef __APPLE__
#include <GL/glew.h>
#include <GLUT/glut.h>
#else
#include <GL/glew.h>
#include <GL/glut.h>
#endif

#endif // GL_H

我将其封装到一个名为gl.h的文件中,并将其包含在我需要OpenGL上下文的任何地方。您需要研究如何在您的系统上安装GLEW。确保为编译器安装正确的GLEW版本。如果您使用Visual C ++ 2010或MinGW,那么放置lib和包含文件的位置会略有不同。您也可以始终从源代码构建,但这是一种更高级的路径。

如果你想要一些关于如何开始使用Qt和OpenGL的示例代码,我在Bitbucket上有一个存储库,其中包含我为OpenGL编程类编写的一些代码:https://bitbucket.org/pcmantinker/csc-4356/src/2843c59fa06d0f99d1ba90bf8e328cbb10b1cfb2?at=master