我很抱歉,如果这是一个重复的问题,但我已经浏览了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位兼容性)。我链接到错误的文件吗?
感谢阅读。