未明确引用' glewExperimental',' glewInit @ 0',' __ glewGenBuffers'

时间:2015-09-20 23:27:57

标签: c++ linker codeblocks glew

我很抱歉,如果这是一个重复的问题,但我已经浏览了StackOverflow和Google,但还没有找到答案。

我正在使用Code :: Blocks和SDL并尝试让GLEW使用openGL。

程序代码是:

#include <Windows.h>
#include <SDL.h>
#define GLEW_STATIC
#include <glew.h>

int main(int argc, char *argv[])
{
    //initialize SDL
    SDL_Init(SDL_INIT_VIDEO);

    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);

    SDL_Window* window = SDL_CreateWindow("OpenGL", 100, 100, 800, 600, SDL_WINDOW_OPENGL);

    SDL_GLContext context = SDL_GL_CreateContext(window);

    glewExperimental = GL_TRUE;
    glewInit();

    GLuint vertexBuffer;
    glGenBuffers(1, &vertexBuffer);

    SDL_GL_DeleteContext(context);
    SDL_Quit();
    return 0;
}

当我构建它时,它会返回:

undefined reference to 'glewExperimental'
undefined reference to 'glewInit@0'
undefined reference to '__glewGenBuffers'

它没有返回错误发现glew.h,所以我认为链接器找到.lib文件时会出现问题。

我已经添加了.lib文件所在的文件夹&Project;构建选项&gt;搜索目录&gt;链接器和添加&#39; glew32s&#39;&#39; glew32&#39; (我已经尝试在glew32s和glew32上切换优先级)和&#39; opengl32&#39;在链接器设置&gt;链接库,并添加&#39; -lglew32s&#39;,&#39; -lglew32&#39; (再次尝试切换优先级并删除一个或另一个),&#39; -lopengl32&#39;在链接器设置&gt;其他链接器选项。

我甚至尝试将.lib文件,.h文件和.dll文件添加到项目文件夹中,并将搜索目录添加到项目文件夹中。它仍然返回相同的错误。

我在64位操作系统上使用最新版本的glew(1.13.0)。我已尝试链接到64位和32位版本(因为我读取大多数编译器默认情况下编译为32位兼容性)。我链接到错误的文件吗?

感谢阅读。

0 个答案:

没有答案