2012-08-09 2 views
1

나는 SDL로 그라운드를 벗어나려고하고있다. SDL 자체만으로도 잘 작동하며 기본 Hello World 설정을 사용할 수 있습니다. 그러나 SDL_image를 사용하려고하면 많은 골칫거리가 발생합니다. (아래) 내 현재 코드 라인 (17)SDL_image Out of Scope

  • 코드 :: 블록에서 내 링커 설정은 다음과 같이에서 나에게 오류 'Img_Load'이 범위에서 선언되지 않은 '를 제공합니다 "-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; 
    } 
    

모든 모든 도움을 주시면 감사하겠습니다!

답변

1

'IMG_Load'는 이와 같은 오류가 발생하면 라이브러리 참조로 소스 파일의 대소 문자를 확인합니다.

+0

Img_Load는 설명서에 따라 올바른 경우입니다. 또한 케이스를 변경하면 다른 오류가 발생합니다. 범위 오류는 함수가 정의되었지만 액세스 할 수 없음을 의미합니다. – user1586641

+0

오, 확실하지 않습니다. 효과가없는 제안을 추가하는 것이 싫지만 SDL_image.a가 링크되어 있습니까? – dans3itz

+0

내가 알 수있는 한, SDL_image.lib는 링크되어 있습니다 (.l 파일이 없으며 .lib 만 있습니다). 링커 설정에 -lSDL_image 플래그를 추가했고, 검색 디렉토리에이를 표시해야하며, Code :: Blocks는 SDL_image 함수에 대한 코드 완성 제안을 제공합니다. C++의 범위에 물건을 가져 오는 일종의 무력한 방법이 있습니까? – user1586641