glew问题(链接,崩溃)

时间:2015-10-24 18:55:50

标签: c++ opengl codeblocks glew

我正在尝试在代码块中设置glew(在Windows上)。我静静地链接它。 问题是有两个.lib文件glew32.libglew32s.lib。当我链接glew32.lib时,我有undefined reference to ___glewGenBuffers(或除glewInit()之外的任何类似功能)。当我链接glew32s.lib时,所有内容编译都很好,但程序崩溃(分段错误)与glewInit()一致。创建了Opengl上下文,定义了#GLEW_STATIC,从here下载了glew。

我的测试计划:

#include <iostream>
#define GLEW_STATIC
#include <GL/glew.h>
#include <GL/freeglut.h>

using namespace std;

void initGL()
{
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(0,0);
    glutInitWindowSize(1920,1080);
}


int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    initGL();
    glutCreateWindow("TEST");
    GLenum err=glewInit();

    if (GLEW_OK != err)
    {
    cout<<glewGetErrorString(err)<<endl;
    }

        GLuint foo[2];
        glGenBuffers(2,foo);

    return 0;
}

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

只有在使用库GLEW_STATIC的静态版本时才定义glew32s.lib。因此,如果您这样做,请转到编译器设置面板,并添加-DGLEW_STATIC

到其他选项

还要确保通过将glew32s添加到链接器设置来正确链接lib。

您还需要使用opengl32链接到openGL。