我是SDL和OpenGL的新手,我正在尝试设置Codeblocks来开始自学这些主题。我最近遵循了本教程:http://www.grhmedia.com/SDLOGLSetup.php来设置Codeblocks,以便我可以开始使用它们。但是,出于某种原因,每当我尝试在Codeblocks中构建项目时,我都会收到此错误:
SDL / SDL_opengl.h:没有这样的文件或目录。
以下是我正在运行以测试所有内容的示例程序。
#include <iostream>
#define NO_SDL_GLEXT
#include <GL/glew.h>
#include "SDL2/SDL.h"
#include "SDL/SDL_opengl.h"
int main(int argc, char **argv)
{
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout << "SDL could not initialize! SDL Error: " << SDL_GetError() << std::endl;
return -1;
}
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_Window *window = SDL_CreateWindow("Example for SO", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_OPENGL);
if(window == nullptr)
{
std::cout << "Window could not be created! SDL Error: " << SDL_GetError() << std::endl;
return -1;
}
glewExperimental = GL_TRUE;
auto ctx = SDL_GL_CreateContext(window);
auto init_res = glewInit();
if(init_res != GLEW_OK)
{
std::cout << glewGetErrorString(glewInit()) << std::endl;
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
我的搜索目录中的设置是:
以下是我的编译器设置:
C:\SDL\SDL-2.0.6\i686-w64-mingw32\include
C:\SDL\SDL_image-2.0.1\i686-w64-mingw32\include
C:\SDL\SDL_mixer-2.0.1\i686-w64-mingw32\include
C:\SDL\SDL_ttf-2.0.14\i686-w64-mingw32\include
C:\SDL\SDL_net-2.0.1\i686-w64-mingw32\include
以下是我的链接设置:
C:\SDL\SDL-2.0.6\i686-w64-mingw32\lib
C:\SDL\SDL_image-2.0.1\i686-w64-mingw32\lib
C:\SDL\SDL_mixer-2.0.1\i686-w64-mingw32\lib
C:\SDL\SDL_ttf-2.0.14\i686-w64-mingw32\lib
C:\SDL\SDL_net-2.0.1\i686-w64-mingw32\lib
在我的链接器设置下,在其他链接器选项下: 我有:
-lmingw32 -lSDL2main -lSDL2 -lSDL2_image
-lSDL2_ttf -lSDL2_mixer -lSDL2_net
-lopengl32 -lglu32 -lglew32 -lglew32mx
也许我错过了什么?我已多次浏览本教程,但我总是遇到同样的错误。
如果有人能告诉我我做错了什么或者让我对这里发生的事情有所了解会导致这个错误和任何补救措施,那就太棒了!谢谢!