1
我试图通过SDL脱身。 SDL本身工作正常,我得到了基本的Hello World设置工作。但是,尝试使用SDL_image已经让我头痛不已。我当前的代码(见下文)给我的错误“Img_Load”在此范围内未声明”在第17行SDL_image超出范围
- 在代码:: Blocks的我的链接器设置是这样的:“-lmingw32 -lSDLmain -lSDL - lSDL_image“
- 正确设置搜索目录
所需的DLL位于EXE文件夹中。
include iostream include fstream include "SDL/SDL.h" include "SDL_image.h" using namespace std; const int SCREEN_WIDTH = 600; const int SCREEN_HEIGHT = 600; int main(int argc, char *argv[]){ SDL_Init(SDL_INIT_EVERYTHING); SDL_Surface* hello = NULL; SDL_Surface* screen = NULL; screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 32, SDL_SWSURFACE); hello = Img_Load("img\\hello world.png"); if(!hello) //check that the load worked cout<<"error"; SDL_BlitSurface(hello, NULL, screen, NULL); //draw image SDL_Flip(screen); SDL_Delay(2000); SDL_FreeSurface(hello); //closing down SDL_Quit(); return 0; }
任何和所有帮助将不胜感激!
根据文档,Img_Load是正确的情况。同样,如果我改变案例,它会给我一个不同的错误。范围错误意味着函数被定义但不可访问。 – user1586641 2012-08-09 12:07:11
哦,不确定。讨厌无效地添加更多建议,但SDL_image.a被链接? – dans3itz 2012-08-09 18:34:38
据我所知,SDL_image.lib被链接(它没有.a文件,只是一个.lib)。我已经将-lSDL_image标志添加到链接器设置中,搜索目录应该可以看到它,并且Code :: Blocks甚至为我提供了SDL_image函数的代码完成建议。是否有某种蛮力的方式将东西带入C++中的范围? – user1586641 2012-08-09 22:26:45