필자는 SDL2를 사용하였기 때문에 SDL2 기준으로 글을 작성하지만 최근 버전인 SDL3 또한 동일한 방법으로 환경을 설정할 수 있기에 2를 설치하던지 3을 설치하던지 상관 없다. 

 

1. SDL 라이브러리 다운로드

Release 2.28.1 · libsdl-org/SDL · GitHub

 

Release 2.28.1 · libsdl-org/SDL

This is a stable bugfix release, with the following changes: Added support for the Nintendo Online Famicom controllers Improved support for third-party Nintendo Switch controllers Fixed setting th...

github.com

 

 

해당 링크에 들어가 위 그림과 같이 SDL2-devel-2.28.1-VC.zip을 클릭하여 다운받고 해당 솔루션 폴더에 압축을 해제한다.

파일이름이 길어서 말하기 번거로우니 파일 이름을 SDL로 변경했다


2. 동적링크라이브러리 파일 옮기기

파일 탐색기를 통해 SDL > lib > x64 폴더에 들어가게 되면 SD2.dll 파일이 있을것이다.

 그걸 복사해서 VS의 해당 솔루션 파일의 x64 > Debug 파일에 붙여넣기 하면 된다


3. 프로젝트 생성 및 속성 창

해당 솔루션 내에 프로젝트를 생성한다. 

프로젝트를 생성하고 코드로 #include <SDL.h>를 작성하면 해당 코드에 빨간 줄이 그어질 것이다. -> 아직 안되었다는 뜻

이후, 창의 프로젝트 - 속성을 누르거나 솔루션 탐색기에서 프로젝트 위에서 오른쪽 클릭을 통해 속성 창을 띄운다


4. C/C++ 의 추가 포함 디렉터리

속성 창에서 "C/C++"를 선택하고 "추가 포함 디렉터리"의 편집을 누르고 $(ProjectDir)..\SDL\include 을 작성한 후 확인을 누른다.

여기서 $(ProjectDir)은 현재 프로젝트 디렉토리를 가리킨다.


5. 링커의 일반

그 후 속성 창에서 "링커"의 "일반" 선택하고 "추가 라이브러리 디렉터리"에 위와 같은 방법으로 편집하여 $(ProjectDir)..\SDL\lib\x64을 작성한다. 


6. 링커의 입력

그 다음, "링커"의 "입력"을 선택하고 "추가 종속성"에 편집으로 SDL2.lib 와 SDL2main.lib를 적으면 된다. (파일탐색기의 해당 솔루션 파일의 SDL > lib > x64 파일 속 확장자가 .lib인 파일을 모두 적으면 된다)


7. 확인

SDL 개발 환경이 잘 설정되었지 확인하기 위해 해당 코드를 프로젝트에 작성해보고 실행한다

#include <stdio.h>
#include <SDL.h>

#define WIDTH 800  // 화면 너비
#define HEIGHT 600 // 화면 높이

SDL_Window* window; // SDL 창과 렌더러를 가리키는 포인터
SDL_Renderer* renderer;

int main(int arc, char** argv) {
	SDL_Event event;
	int quit = 0;

	SDL_Init(SDL_INIT_VIDEO); // 비디오 서브 시스템 초기화

	window = SDL_CreateWindow("galaga", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WIDTH, HEIGHT, 2); // WIDTH 와 HEIGHT의 크기만큼, "galga"라는 제목의 윈도우를 가운데 정렬되게 생성
	renderer = SDL_CreateRenderer(window, -1, 0); // 윈도우에 대한 렌더러(그래픽 요소를 그리기 위해 사용됨) 생성

	while (!quit) {
		//이벤트 처리
		while (SDL_PollEvent(&event)) {
			if (event.type == SDL_QUIT) { // 윈도우의 x 표시를 누르면
				quit = 1;
			}
		}
		SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); // 렌더러의 그리기 색상을 검정색으로
		SDL_RenderClear(renderer); // 렌더러에 설정된 색상으로 화면을 지움
		SDL_RenderPresent(renderer); // 렌더러에 그려진 내용을 실제 화면에 표시
	}
	SDL_DestroyRenderer(renderer); // 렌더러와 윈도우 해제
	SDL_DestroyWindow(window); 
	SDL_Quit(); // SDL을 종료하고 관련된 리소스를 해제한다.

}

해당 창이 성공적으로 뜨면 SDL 설치가 제대로 된것이다. 

+ Recent posts