사용자 도구

사이트 도구


raylib:install:리눅스_환경에서_raylib_설치하기
리눅스 환경에서 raylib 설치하기

문서의 이전 판입니다!


서문

Linux 환경에서 Raylib를 설치하고 Makefile과 VS Code의 환경 설정하는 법에 대해 설명하려고 한다.

Linux는 데비안계열(우분투)을 기준으로 하였다1).

어차피 패키지 매니링 명령어의 경우 데비안 계열에서 'apt'가 arch 계열에서는 'pacman'으로 이름만 바뀌는 정도이니 데비안 계열이 아니더라도 크게 혼란은 없을 것이다.

환경 설정

리눅스에서 c나 c++을 사용할 수 있는 컴파일러가 설치되어야 있어야 한다.

어차피 대부분의 배포란 리눅스에는 설치되어 있지만, 혹시 모르니 다음 명령어를 터미널에서 입력하여 설치 여부를 확인하자

sudo apt update
sudo apt install build-essential git
sudo apt install libasound2-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev xorg-dev libgl1-mesa-dev libglu1-mesa-dev

Raylib 설치하기

1. Raylib 복사하기

Git 리포지토리에서 일단 Raylib를 복하자. 최상단 폴더에서 raylib를 설치하겠다.

cd ~
git clone https://github.com/raysan5/raylib.git raylib

2. Raylib 컴파일 하기

이에 raylib폴더 중에 src 폴더에 들어가서 src폴더 내에 있는 makefile을 실행시키자.

cd raylib/src/
make PLATFORM=PLATFORM_DESKTOP
sudo make install

참고로 src폴더 내에 있는 makefile을 보면, 다음의 경로가 있다.

# RAYLIB_INSTALL_PATH should be the desired full path to libraylib. No relative paths.
DESTDIR ?= /usr/local
RAYLIB_INSTALL_PATH ?= $(DESTDIR)/lib
# RAYLIB_H_INSTALL_PATH locates the installed raylib header and associated source files.
RAYLIB_H_INSTALL_PATH ?= $(DESTDIR)/include

즉, 컴파일한 라이브러리는 /usr/local/lib에 들어 있음을 알 수 있다.

Makefile 만들기

1. 프로젝트 폴더

아무거나 Raylib를 사용한 간단한 c혹은 c++ 프로그램을 만들자

/raylib/example/core 폴더에 있는 core_basic_window.c를 써도 된다2).

그런데 cpp를 이용할 것이므로 이 보다는 OOP 형태로 만들어진 예제를 이용하자.

Raylib Template File

내가 전에 작성한 글인 VS코드에서 Raylib CPP환경 설정하기를 참고하자

2. 상수 설정하기

makefile에서 사용할 상수(constant)를 설정하자. 주로 경로에 대해서 설정하면 된다.

# Define required raylib variables
PROJECT_NAME          ?= raylib_hello
RAYLIB_VERSION        ?= 5.5.0
RAYLIB_PATH           ?= /home/(UserName)/raylib
 
# Define raylib source code path
RAYLIB_SRC_PATH       ?= /home/(UserName)/raylib/src
 
# Locations of raylib.h and libraylib.a/libraylib.so
# NOTE: Those variables are only used for PLATFORM_OS: LINUX, BSD
DESTDIR               ?= /usr/local
RAYLIB_INCLUDE_PATH   ?= $(DESTDIR)/include
RAYLIB_LIB_PATH       ?= $(DESTDIR)/lib
 
# Library type compilation: STATIC (.a) or SHARED (.so/.dll)
RAYLIB_LIBTYPE        ?= STATIC
 
# Build mode for project: DEBUG or RELEASE
BUILD_MODE            ?= RELEASE 
 
# Define raylib release directory for compiled library
RAYLIB_RELEASE_PATH    ?= $(RAYLIB_PATH)/src

git을 통해 복사한 Raylib 코드는 우리가 아까 'cd ~'을 통해 홈의 루트에 설치했다.

따라서 탐색기에서 HOME에 가면 'raylib'폴더가 설치된 것을 알 수 있다.

이 위치는 '/home/(UserName)/raylib'이다. 여기서 (UserName)은 리눅스에서 사용자가 설정한 사용자 이름을 말한다.

그리고 아까 /raylib/src 폴더에서 make를 통해 컴파일한 라이브러리는 '/usr/local'에 설치되었다고 하였다.

이를 DESTDIR로 설정하면 된다.

3. 컴파일러와 메이크 파일 설정

우리는 c가 아니라 c++을 사용할 것이므로 컴파일러는 g++을 이용할 것이다.

따라서 gcc를 g++로 바꿔주자

# Define default C compiler: CC
#------------------------------------------------------------------------------------------------
CC = g++
 
 
# Define default make program: MAKE
#------------------------------------------------------------------------------------------------
MAKE ?= make

4. 컴파일러 플래그 옵션 설정

플래그 옵션은 다음과 같이 설정하면 된다.

참고로 윈도우에서는 아이콘을 만드는게 가능한데, 리눅스에서는 어떻게 만드는지 아직 모르겠다.

# Define compiler flags: CFLAGS
#------------------------------------------------------------------------------------------------
#  -O1                  defines optimization level
#  -g                   include debug information on compilation
#  -s                   strip unnecessary data from build
#  -Wall                turns on most, but not all, compiler warnings
#  -std=c99             defines C language mode (standard C from 1999 revision)
#  -std=gnu99           defines C language mode (GNU C from 1999 revision)
#  -Wno-missing-braces  ignore invalid warning (GCC bug 53119)
#  -Wno-unused-value    ignore unused return values of some functions (i.e. fread())
#  -D_DEFAULT_SOURCE    use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
CFLAGS = -Wall -std=c++14 -Wno-missing-braces 
 
ifeq ($(BUILD_MODE),DEBUG)
    CFLAGS += -g  -O0
else
    CFLAGS += -s -O1
endif
 
# Additional flags for compiler (if desired)
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
    ifeq ($(PLATFORM_OS),WINDOWS)
        # resource file contains windows executable icon and properties
        # -Wl,--subsystem,windows hides the console window
        CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data
    endif
    ifeq ($(PLATFORM_OS),LINUX)
        ifeq ($(RAYLIB_LIBTYPE),STATIC)
            CFLAGS += -D_DEFAULT_SOURCE
        endif
        ifeq ($(RAYLIB_LIBTYPE),SHARED)
            # Explicitly enable runtime link to libraylib.so
            CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH)
        endif
    endif
endif

5. 헤더파일과 라이브러리 파일 연결하기

컴파일 옵션에 다음을 추가하여 헤더파일과 라이브러리 파일을 연결한다.

# Define include paths for required headers: INCLUDE_PATHS
# NOTE: Some external/extras libraries could be required (stb, easings...)
#------------------------------------------------------------------------------------------------
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external $(EXTRA_INCLUDE_PATHS)
 
# Define library paths containing required libs: LDFLAGS
#------------------------------------------------------------------------------------------------
LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
1)
필자가 사용한 리눅스 배포판은 '하모니kr 8.0 백두'이다.
2)
example 폴더는 매우 예제가 좋으므로 꾸준히 보면 좋다
로그인하면 댓글을 남길 수 있습니다.

raylib/install/리눅스_환경에서_raylib_설치하기.1765722146.txt.gz · 마지막으로 수정됨: 저자 이거니맨