OpenGL Glew和FreeGlut链接错误 - GLAPI没有命名类型

时间:2012-09-03 17:21:03

标签: opengl linker codeblocks freeglut glew

我正在尝试在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。有什么我做错了,我错过了吗?

<小时/> 的更新
好的,我现在有一些工作。我还将所有包含和库添加到Code :: Blocks / mingw文件夹中(而不是'仅'C:/ MinGW文件夹)并丢失了我的GLAPI错误。

我不确定它是否是目前的防破坏版本,因为我不太确定我使用过的所有步骤但是现在它似乎正在运行。

0 个答案:

没有答案