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)/ | LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/ | ||
| + | </ | ||
| + | |||
| + | 리눅스 데스크탑은 윈도우와 마찬가지로 GLFW (Open GL Library)를 이용한다. | ||
| + | |||
| + | 따라서 라이브러리 연결은 다음과 같은 플래그를 추가해야 한다. | ||
| + | |||
| + | <code make> | ||
| + | # Define libraries required on linking: LDLIBS | ||
| + | # NOTE: To link libraries (lib< | ||
| + | # | ||
| + | ifeq ($(TARGET_PLATFORM), | ||
| + | ifeq ($(PLATFORM_OS), | ||
| + | # Libraries for Windows desktop compilation | ||
| + | # NOTE: WinMM library required to set high-res timer resolution | ||
| + | LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm | ||
| + | endif | ||
| + | ifeq ($(PLATFORM_OS), | ||
| + | # 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), | ||
| + | LDLIBS += -lc | ||
| + | endif | ||
| + | # NOTE: On ARM 32bit arch, miniaudio requires atomics library | ||
| + | LDLIBS += -latomic | ||
| + | endif | ||
| + | endif | ||
| + | |||
| </ | </ | ||
| + | |||
| + | ==== 6. 컴파일 명령 ==== | ||
| + | |||
| + | 컴파일 명령은 다음과 같다. | ||
| + | |||
| + | |||
| + | <code make> | ||
| + | |||
| + | # Define a recursive wildcard function | ||
| + | rwildcard=$(foreach 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: | ||
| + | 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): | ||
| + | $(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)/ | ||
| + | $(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM) | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== 7. 소결 ==== | ||
| + | |||
| + | Makefile을 만들었으니 이제 컴파일을 할 수 있다. | ||
| + | |||
| + | 커맨드라인에서 ' | ||
| + | |||
| + | |||
| + | 리눅스 환경에만 국한하여 만든 makefile을 첨부한다. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Visual Studio Code 환경 설정하기 ===== | ||
| + | |||
| + | ==== 1. Task.json 설정하기 ==== | ||
| + | |||
| + | Code Editor 내에서 알아서 빌드할 수 있게 위에서 만든 Makefile을 호출하게 해보자 | ||
| + | |||
| + | |||
| + | === 가. 경로 변수 === | ||
| + | |||
| + | VS Code에서 현재 파일명을 받아오는 변수 ${fileBasenameNoExtension}이고 | ||
| + | |||
| + | 현재 워크스페이스의 폴더명을 받아오는 변수는 ${workspaceFolderBasename}이다. | ||
| + | |||
| + | 우리가 컴파일해서 만들 설치파일은 워크스페이스 폴더의 이름으로 만드는 것이 좋을 것이다((만약 현재 파일명으로 설치파일을 만든다면 거대부분의 설치 파일의 이름은 " | ||
| + | |||
| + | 따라서 ${workspaceFolderBasename}를 경로변수로 활용하자. | ||
| + | |||
| + | ==== 나. 공통 인자 ==== | ||
| + | |||
| + | Task.json에서 우리가 실행할 명령어는 " | ||
| + | |||
| + | <code make> | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | </ | ||
| + | |||
| + | ==== 다. 리눅스에 적용되는 인자 ==== | ||
| + | |||
| + | 리눅스 환경에서는 다음의 인자를 추가하면 된다. | ||
| + | |||
| + | <code make> | ||
| + | " | ||
| + | " | ||
| + | // " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | }, | ||
| + | </ | ||
| + | |||
| + | OBJS에 " | ||
| + | |||
| + | |||
| + | ==== 2. 나머지 ==== | ||
| + | |||
| + | 나머지는 지금까지 수정한 경로와 같은 방법으로 변경하면된다. | ||
| + | |||
| + | 내가 사용한 " | ||
| + | |||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ===== 결론 ===== | ||
| + | |||
| + | 지금까지 만든 리눅스용 Raylib 템플릿 파일을 첨부한다. | ||
| + | |||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ===== 더보기 ===== | ||
| + | |||
| + | ==== 1. VIM 에디터용 Syntax Highlight ==== | ||
| + | |||
| + | VIM 에디터용 Raylib를 위한 Syntax Highlight에 대하여는 [[vim_syntax_for_raylib_cpp|Raylib를 위한 VIM Syntax파일 만들기 ]]를 참조하라. | ||
| + | |||
| + | ==== 2. 실전 ==== | ||
| + | |||
| + | |||
| + | 이제 실제로 게임을 만들어보자 | ||
| + | |||
| + | [[raylib: | ||
| + | |||
| + | [[raylib: | ||
| + | |||
| + | 그런데 의외로 많은 사람들이 C 및 c++의 컴파일을 하는 방법을 모르는 사람들이 많다. | ||
| + | |||
| + | [[raylib: | ||
raylib/install/리눅스_환경에서_raylib_설치하기.1765722146.txt.gz · 마지막으로 수정됨: 저자 이거니맨
