glewInit未定义,但glewExperimental不是

时间:2013-06-06 02:23:55

标签: c++ opengl mingw glew

当我使用GLFW和GLEW编译我的代码时,glewInit()是一个

    undefined reference to '_imp_glewInit@0'
奇怪的是,它直接位于那里的glewExperimental令牌没有问题。 (如果我编译了glewInit()注释掉,它将成功编译并运行)

我的整体问题是,为什么在将glewExperimental更改为true时未定义glewInit();以及如何解决此问题。

我的MinGW编译器调用:

    C:\MinGW\bin\c++.exe -x c++ -o "%cd%\aeonsplice.exe" -static "main.cpp" -Wl,glew32.dll,glfw.dll

我在哪里调用glewInit():

    glewExperimental = true; // this checks out as fine (I don't have glewExperimental declared anywhere)
    if (glewInit() != GLEW_OK) // this is where it breaks
    {
        fprintf( stderr, "Failed to initialize GLEW, exiting.\n" );
        aeonAPITerminate(); // This calls glfwTerminate()
        return false;
    }

如果需要更多信息,我会按要求编辑。是的,我确实搜索过并发现有关glewInit()的20多个问题无效,但没有一个与我的问题相符。

1 个答案:

答案 0 :(得分:2)

对于mingw编译器,您必须链接 glew32s.lib 而不是 glew32.lib ,它必须位于所有链接列表的第一个。