glew和gltools的问题,_glewInit已经定义

时间:2011-09-25 10:05:45

标签: c++ glew defined

我正在尝试将opengl Superbible示例中的shadders添加到我的程序中。问题是,当我从gltools调用任何函数时,我得到了

glew32.lib(glew32.dll) : error LNK2005: _glewInit already defined in gltools.lib(glew.obj)

在此之后我用glew32s.lib交换了glew32.lib。这导致了

的未处理异常
const M3DMatrix44f& GetMatrix(void) { return pStack[stackPointer]; }

我添加的代码

void Shadders::RenderScene()
{

    static CStopWatch rotTimer;

// Clear the window and the depth buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

modelViewMatrix.PushMatrix(viewFrame);
    modelViewMatrix.Rotate(rotTimer.GetElapsedSeconds() * 10.0f, 0.0f, 1.0f, 0.0f);

    GLfloat vColor[] = { 0.1f, 0.1f, 1.f, 1.0f };

    glUseProgram(flatShader);
    glUniform4fv(locColor, 1, vColor);
    glUniformMatrix4fv(locMVP, 1, GL_FALSE, transformPipeline.GetModelViewProjectionMatrix());  // The line that causes the unhandled exception
torusBatch.Draw();

modelViewMatrix.PopMatrix();


glutSwapBuffers();
glutPostRedisplay();
}

当我尝试使用

工作时
        GLfloat modmatrix[16], projmatrix[16];
    glGetFloatv(GL_PROJECTION_MATRIX, projmatrix);
    glGetFloatv(GL_MODELVIEW_MATRIX, modmatrix);

    //M3DMatrix44f
    float MDWPRJMatrix[16];
    m3dMatrixMultiply44(MDWPRJMatrix, modmatrix, projmatrix);

    glUniformMatrix4fv(locMVP, 1, GL_FALSE, MDWPRJMatrix);

我通过Expression:OPENGLUT_READY

得到断言失败

我想知道是什么导致这种情况,如果可能的话,如何解决它 提前致谢

1 个答案:

答案 0 :(得分:1)

通过链接glew32s.lib并在我的代码开头添加#define GLEW_STATIC解决了这个问题。另外,链接freeglut而不是openglut。