본문 바로가기

C/C++/SDL2

1장 Hello SDL

Hello SDL

이번 강좌에서는 SDL 라이브러리를 셋팅하고 우리의 첫 번째 윈도우를 만들어 보겠습니다.


당신은 c++ 의 기초를 배웠습니다. 그리고 이젠 텍스트 기반의 작은 프로그램이라면 멀미가 납니다. 그래픽, 사운드, 키보드, 조이스틱, etc 등을 사용하기 위해선 API(Application Programmer's Interface)가 필요합니다. API는 모든 하드웨어 구성을 C++로 상호 작용할 수 있게 바꿔줍니다.


이것이 SDL의 역할입니다. SDL은 Windows/Linux/Mac/Android/iOS/그외의 OS(운영체제)를 묶어 SDL에서 운용 될 수 있게 코드화시키고 지원하는 플랫폼에 맞춰 컴파일 됩니다. 사용하기 앞서 당신은 이를 설치해야 합니다.



SDL은 동적 링크 라이브러리입니다. 동적 링크 라이브러리는 3가지 푸품으로 구성 되어있습니다.

  • 헤더 파일 (Library.h)
  • 라이브러리 파일 (윈도우 용 Library.lib 또는 *닉스 계열용 libLibrary.a)
  • 바이너리 파일 (윈도우용 Library.dll 또는 *닉스 계열용 Library.so)

당신의 컴파일러는 SDL 함수들 SDL_Init() 그리고 그외 SDL 구조를 컴파일하기 위해 헤더파일을 찾아야 합니다. 컴파일러에게 SDL 헤더 파일들이 위치한 디렉토리의 경로를 직접 추가 설정해서 알려주거나 또는 당신의 컴파일러와 함께 제공된 나머지 헤더파일들이 위치한 경로에 직접 헤더파일을 넣어서 알려줄 수 있습니다. 만약 컴파일러가 SDL.h 파일을 찾을 수 없다고 불평하는 경우, 컴파일러가 보는 장소에 헤더 파일이 없다는 뜻입니다.


컴파일러는 당신의 소스파일들을 전부 컴파일한 후 모두 함께 붙도록 링크시킬 겁니다. 프로그램을 올바로 링크하기 위해서는 SDL에 대한것들을 포함하여 당신 함수들의 주소를 알아야 합니다. 이를 위해 이들의 모든 주소가 들어있는 라이브러리 파일 동적 링크 라이브러리(dynamically linked library) 가 있습니다. 당신의 프로그램이 런타임에 함수를 사용할 수 있도록 라이브러리 파일은 들여올 주소에 대한 표, 목록을 가지고 있습니다. 헤더 파일과 마찬가지로 컴파일러에게 SDL 라이브러리 파일들이 위치한 디렉토리의 경로를 직접 추가 설정해서 알려주거나 또는 당신의 컴파일러와 함께 제공된 나머지 라이브러리 파일들이 위치한 경로에 직접 라이브러리 파일을 넣어서 알려줄 수 있습니다. 또한 당신은 관련된 라이브러리 파일들이 무엇인지 링커에게 알려줘야 합니다. 만약 링커가 -lSDL 또는 SDL2.lib를 찾을 수 없다고 불평하는 경우, 링커가 보는 장소에 라이브러리 파일이 없다는 뜻입니다. 만약 링커가 undefined reference 이란 유형의 불평을 한다면 아마 링크할 라이브러리를 알려준적이 없다는 뜻입니다.


당신의 프로그램은 컴파일과 링크가 완료된후 실행할 때마다 라이브러리를 링크할 수 있는 능력이 필요합니다. 동적 링크 어플리케이션을 실행하기 위해서 런타임에 라이브러리의 바이너리를 불러와야 합니다. 당신의 운영체제는 당신의 프로그램을 실행할 때마다 라이브러리의 바이너리를 찾습니다. 실행파일이 들어있는 디렉토리에 라이브러리의 바이너리들을 넣거나 또는 당신의 운영체제가 라이브러리의 바이너리 파일을 유지하는 곳에 넣습니다.


이후에는 SDL을 설정합니다. 이에 대해서는 Hello SDL: Your First Graphics Window 에서 다룰껍니다.



윈도우에서의 SDL 설정

마이크로 소프트 윈도우 개발자를 위한 중요한 메모:

 

As part of your set up process,

you are going to have to place the dll file some place where your program can link with it during runtime.

You can either put the dll file in the same directory as your executable, or put it in the system directory.

C:\WINDOWS\SYSTEM32 is the 32bit windows system directory and

C:\Windows\SysWOW64 is the 64bit system directory of 32bit applications.

 

당신의 설정 과정의 일환으로,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'C/C++ > SDL2' 카테고리의 다른 글

SDL에 대하여 (About SDL)  (0) 2016.11.12
00장. 게임 프로그래밍 첫 걸음  (0) 2015.05.25
Visual Studio 2013 - SDL2 셋팅  (3) 2014.08.28
Code::Blocks - SDL2 셋팅  (0) 2014.08.27
SDL 소개  (0) 2014.08.27