필자는 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 설치가 제대로 된것이다.
'C' 카테고리의 다른 글
[C언어 | SDL을 이용한 게임 작성] 슈팅게임 (0) | 2025.02.27 |
---|---|
[쉽게 풀어쓴 C언어 Express 개정 4판] 17장 Programming (1) | 2024.10.18 |
[쉽게 풀어쓴 C언어 Express 개정 4판] 16장 Programming (1) | 2024.10.16 |
[쉽게 풀어쓴 C언어 Express 개정 4판] 15장 Programming (0) | 2024.10.15 |
[쉽게 풀어쓴 C언어 Express 개정 4판] 14장 Programming (14) | 2024.10.11 |