我正在尝试在OpenGL中使用顶点缓冲区对象(在Code :: Blocks中),但显然你需要做额外的步骤来实际使用这些,因为我一直在“glGenBuffers未在此范围内声明”错误所以一些搜索我发现你可以通过安装加载库来使用这些“扩展”函数:GLEW,它可以为你处理这些问题。
这就是我所做的:我下载了GLEW Windows二进制文件。将glew32.dll放在我的Windows / System32文件夹中,并将glew32添加到我的MinGW的lib文件夹中,并将包含添加到MinGW的include文件夹中。为了安全起见,我还手动添加了lib的搜索目录,并包含在Code :: Blocks中。还在我的链接器选项中添加了“-lglew32”。
我已经将Glew和Glut包括在内:
#ifndef INCLUDES_H_INCLUDED
#define INCLUDES_H_INCLUDED
/* Main Header file that contains all the HEADER */
#include <windows.h>
//Some Main constants
#define PI 3.14159265
//Standard includes
#include <stdio.h>
#include <string>
#include <algorithm>
#include <math.h>
#include <iostream>
#include <vector>
#include <ctime>
using namespace std;
// Open GL and GLUT
#include <gl/glew.h>
#include <gl/glut.h>
/* Game Headers */
#include "Game.h"
#include "Functions.h"
#endif // INCLUDES_H_INCLUDED
就我而言,现在一切都应该有效,但在编译时我会收到以下错误:
'GLAPI'未指定类型
我的主要功能是初始化过剩和glew
int main(int argc, char* args[])
{
// #1: GLUT window initialization
glutInit(&argc, args);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
glutInitWindowSize(width, height);
glutInitWindowPosition(width/2, height/2);
glutCreateWindow("OpenGL 3D Programming.");
//glutFullScreen(); //optional
// #2: Registering callbacks
glutReshapeFunc(reshape);
glutDisplayFunc(display);
glewInit();
// #3: GLUT main loop
game.init(width, height);
glutMainLoop();
return 0;
}
Code :: Blocks
中的构建选项的完整列表-lglu32
-lfreeglut
-lglew32
-lwinmm -lgdi32
-lmingw32 -lopengl32
-static-libgcc -static-libstdc++
我现在完全陷入困境,OpenGL让我很难在目前使用Vertex Buffers开始学习OpenGL。有什么我做错了,我错过了吗?
<小时/> 的更新
我不确定它是否是目前的防破坏版本,因为我不太确定我使用过的所有步骤但是现在它似乎正在运行。