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; }
모든 모든 도움을 주시면 감사하겠습니다!
Img_Load는 설명서에 따라 올바른 경우입니다. 또한 케이스를 변경하면 다른 오류가 발생합니다. 범위 오류는 함수가 정의되었지만 액세스 할 수 없음을 의미합니다. – user1586641
오, 확실하지 않습니다. 효과가없는 제안을 추가하는 것이 싫지만 SDL_image.a가 링크되어 있습니까? – dans3itz
내가 알 수있는 한, SDL_image.lib는 링크되어 있습니다 (.l 파일이 없으며 .lib 만 있습니다). 링커 설정에 -lSDL_image 플래그를 추가했고, 검색 디렉토리에이를 표시해야하며, Code :: Blocks는 SDL_image 함수에 대한 코드 완성 제안을 제공합니다. C++의 범위에 물건을 가져 오는 일종의 무력한 방법이 있습니까? – user1586641