사용자 도구

사이트 도구


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

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
raylib:install:리눅스_환경에서_raylib_설치하기 [2025/12/14 23:22] – 컴파일러 옵션 설정 이거니맨raylib:install:리눅스_환경에서_raylib_설치하기 [2025/12/28 19:24] (현재) 이거니맨
줄 195: 줄 195:
 #------------------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------------------
 LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
 +</code> 
 +
 +리눅스 데스크탑은 윈도우와 마찬가지로 GLFW (Open GL Library)를 이용한다. 
 +
 +따라서 라이브러리 연결은 다음과 같은 플래그를 추가해야 한다.
 +
 +<code make>
 +# Define libraries required on linking: LDLIBS
 +# NOTE: To link libraries (lib<name>.so or lib<name>.a), use -l<name>
 +#------------------------------------------------------------------------------------------------
 +ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
 +    ifeq ($(PLATFORM_OS),WINDOWS)
 +        # Libraries for Windows desktop compilation
 +        # NOTE: WinMM library required to set high-res timer resolution
 +        LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm
 +    endif
 +    ifeq ($(PLATFORM_OS),LINUX)
 +        # Libraries for Debian GNU/Linux desktop compiling
 +        # NOTE: Required packages: libegl1-mesa-dev
 +        LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt
 +
 +        # On X11 requires also below libraries
 +        LDLIBS += -lX11
 +        # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them
 +        #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
 +
 +        # Explicit link to libc
 +        ifeq ($(RAYLIB_LIBTYPE),SHARED)
 +            LDLIBS += -lc
 +        endif
 +        # NOTE: On ARM 32bit arch, miniaudio requires atomics library
 +        LDLIBS += -latomic
 +    endif
 +endif
 +
 </code> </code>
 +
 +==== 6. 컴파일 명령 ====
 +
 +컴파일 명령은 다음과 같다.  
 +
 +
 +<code make>  
 +
 +# Define a recursive wildcard function
 +rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))
 +
 +# Define all source files required
 +SRC_DIR = src
 +OBJ_DIR = obj
 +
 +# Define all object files from source files
 +SRC = $(call rwildcard, *.cpp, *.h)
 +#OBJS = $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
 +OBJS ?= main.cpp
 +
 +
 +
 +# Default target entry
 +# NOTE: We call this Makefile target or Makefile.Android target
 +all:
 + $(MAKE) $(MAKEFILE_PARAMS)
 +
 +# Project target defined by PROJECT_NAME
 +$(PROJECT_NAME): $(OBJS)
 + $(CC) -o $(PROJECT_NAME)$(EXT) $(OBJS) $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
 +
 +# Compile source files
 +# NOTE: This pattern will compile every module defined on $(OBJS)
 +#%.o: %.c
 +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
 + $(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM)
 +
 +</code>  
 +
 +==== 7. 소결 ====
 +
 +Makefile을 만들었으니 이제 컴파일을 할 수 있다.
 +
 +커맨드라인에서 'make'명령어를 치면 실행파일을 만들어 주는 것을 알 수 있다. 
 +
 +
 +리눅스 환경에만 국한하여 만든 makefile을 첨부한다.
 +
 +{{ :raylib:install:raylib_linux_makefile.zip |Raylib Linux Makefile}}
 +
 +
 +
 +
 +===== Visual Studio Code 환경 설정하기 =====  
 +
 +==== 1. Task.json 설정하기 ==== 
 +
 +Code Editor 내에서 알아서 빌드할 수 있게 위에서 만든 Makefile을 호출하게 해보자 
 +
 +
 +=== 가. 경로 변수 ===
 +
 +VS Code에서 현재 파일명을 받아오는 변수 ${fileBasenameNoExtension}이고 
 +
 +현재 워크스페이스의 폴더명을 받아오는 변수는 ${workspaceFolderBasename}이다.
 +
 +우리가 컴파일해서 만들 설치파일은 워크스페이스 폴더의 이름으로 만드는 것이 좋을 것이다((만약 현재 파일명으로 설치파일을 만든다면 거대부분의 설치 파일의 이름은 "main"이 되어 버린다.)). 
 +
 +따라서 ${workspaceFolderBasename}를 경로변수로 활용하자.  
 +
 +==== 나. 공통 인자 ==== 
 +
 +Task.json에서 우리가 실행할 명령어는 "make"이고 PLATFORM = "PLATFORM_DESKTOP"이다. 그리고 디버그 모드인 경우에는 "BUILD_MODE=DEBUG"를 추가하면 될 것이다.
 +
 +<code make>
 +            "command": "make",
 +            "args": [
 +                "PLATFORM=PLATFORM_DESKTOP",
 +                "BUILD_MODE=DEBUG"
 +            ],
 +</code> 
 +
 +==== 다. 리눅스에 적용되는 인자 ====
 +
 +리눅스 환경에서는 다음의 인자를 추가하면 된다. 
 +
 +<code make>
 +            "linux": {
 +                "args": [
 +                    // "PROJECT_NAME=${fileBasenameNoExtension}",
 +                    "PROJECT_NAME=${workspaceFolderBasename}.run",
 +                    "DESTDIR=/usr/local",
 +                    "RAYLIB_LIBTYPE=STATIC",
 +                    "OBJS=*.cpp",
 +                    "BUILD_MODE=DEBUG"
 +                ]
 +            },
 +</code> 
 +
 +OBJS에 "*.cpp"라고 하여 Makefile에서 컴파일 대상으로 된 OBJS를 모든 cpp파일로 설정해 준 것을 알 수 있다. 
 +
 +
 +==== 2. 나머지 ==== 
 +
 +나머지는 지금까지 수정한 경로와 같은 방법으로 변경하면된다. 
 +
 +내가 사용한 ".vscode"폴더내의 파일들을 첨부한다. 
 +
 +
 +{{ :raylib:install:vscode환경파일.zip |VS CODE 환경 파일}} 
 +
 +
 +===== 결론 =====
 +
 +지금까지 만든 리눅스용 Raylib 템플릿 파일을 첨부한다. 
 +
 +
 +{{ :raylib:install:raylibtemplate_linux.zip |Raylib Template - Linux, C++}} 
 +
 +
 +===== 더보기 ===== 
 +
 +==== 1. VIM 에디터용 Syntax Highlight ==== 
 +
 +VIM 에디터용 Raylib를 위한 Syntax Highlight에 대하여는 [[vim_syntax_for_raylib_cpp|Raylib를 위한 VIM Syntax파일 만들기 ]]를 참조하라.  
 +
 +==== 2. 실전 ==== 
 +
 +
 +이제 실제로 게임을 만들어보자 
 +
 +[[raylib:pong게임|Raylib로 Pong게임 만들기]]와 
 +
 +[[raylib:flappybird:flappy_bird_만들기|C++와 Raylib로 플래피버드 만들기]]를 읽어보자. 
 +
 +그런데 의외로 많은 사람들이 C 및 c++의 컴파일을 하는 방법을 모르는 사람들이 많다.
 +
 +[[raylib:install:컴파일_및_makefile|컴파일 및 Makefile]]은 꼭 일독할 것을 권한다. 
raylib/install/리눅스_환경에서_raylib_설치하기.1765722146.txt.gz · 마지막으로 수정됨: 저자 이거니맨