사용자 도구

사이트 도구


raylib:raylib_를_cpp로_vs_code_에서_사용하기
raylib 를 cpp로 vs code 에서 사용하기

C++ Raylib VSCode

필요성

raylib가 설치된 디렉토리에는 vs code용 project 폴더가 제공되어 있긴 하다. 물론 다른 에디터용 project폴더도 같이 제공된다.

c:/raylib/raylib/project/VSCODE 

그런데 이 폴더는 순수 c를 위한 템플릿이다. c++을 위해서는 간단한 조작이 필요하다.

raylib 설치 및 환경변수 등록

raylib 설치

raylib공식 웹사이트에서 raylib 최신버전을 다운 받아 설치한다. 2023년 3월 21일 기준으로는 4.5 버전이 최신이다.

환경 변수 등록

윈도우 검색창에서 [고급 시스템 설정 보기]를 찾은 후에 [시스템 속성]에서 [환경 변수]를 클릭한다.

user의 사용자 변수 중에 “Path”값을 클릭한 후 맨 마지막에 새로만들기로 컴파일러가 있는 변수를 설정해 준다.

raylib 4.5 기준으로 g++ 컴파일러가 있는 디렉토리는

c:/raylib/w64devkit/bin 

이다. 환경변수 설정은 이 블로그 를 참조하자

이렇게 환경변수를 설정하는 이유는 컴파일러 명령어(g++.exe)를 어떤 path에서든 불러오기 위함이다.

VS CODE용 raylib 템플릿에는 컴파일 배치명령어인 makefile이 들어있다. 이 makefile에는 전체 경로를 적지 않고 단순하게 “gcc.exe” 혹은 “g++.exe”로만 되어 있다. 컴파일러 명령어인 g++.exe는 어떤 디렉토리에서든 불러오는 것이 좋으므로 이렇게 환경변수를 설정하는 것이 좋다.

템플릿 설치 및 수정

템플릿 설치

raylib의 기본 설치 폴더에서 제공하는 VS CODE용 projects 템플릿은 순수 c를 위한 설정파일만 있다고 전술하였다.

따라서 이 템플릿에는 컴파일러를 gcc.exe로 되어 있으므로 이러한 설정들을 바꾸어야 한다.

Jean-Noel Seneque 란 사람은 c++을 위한 vs code 템플릿을 2021년에 만들어서 배포하기도 하였다.

그런데 이 역시 raylib가 4.5버전으로 된 현재는 완벽하지 않다.

왜냐하면 .vscode에 있는 설정 파일들에서 compiler path가 과거의 경로로 되어 있기 때문이다.

과거에는 “c:/raylib/mingw/bin/g++.exe” 였지만 지금은 “c:/raylib/w64devkit/bin/g++.exe” 이다.

이렇게 컴파일러와 디버거의 경로를 현재에 맞게 설정해주어야 한다.

Jean-Noel Seneque가 만든 템플릿파일을 최신의 raylib에 맞게 고친 것을 아래에 첨부한다.

앞으로는 이 파일을 기초로 하여 코딩을 하면 VS CODE에서도 쉽게 컴파일을 할 수 있다.

앞으로 OOP 형태로 코딩을 할 것이므로 OOP형태의 최소한으로 템플릿 파일을 만들었다.

Raylib Template File

Makefile

위 템플릿을 기존 Raylib 에 있던 c를 위한 컴파일 설정을 c++ 로 컴파일을 하게 바꾼 것이다.

따라서 그 원리를 이해하면 좋을 것이다.

Makefile은 다음과 같이 c++에 대한 컴파일러인 g++.exe로 바뀌고 그에 따라 설정도 바뀌었다.

솔직히 첨부된 Makefile에서 웹이나 기타 리눅스, OSX(맥)에 대한 것들은 지원도 상관 없다. 물론 본인이 리눅스 등 해당 플랫폼을 쓴다면 윈도우에 대한 설정도 지워도 상관 없다. 향후에는 간략화된 Makefile을 첨부해 보도록 하겠다.

가. C 버전의 Makefile

기존 C버전의 Makefile은 다음과 같다. 이게 가장 핵심 명령어이다.

# Define default C compiler: gcc
# NOTE: define g++ compiler if using C++
CC = gcc
 
# Define default make program: Mingw32-make
MAKE = mingw32-make
 
# Define compiler flags:
#  -O0                  defines optimization level (no optimization, better for debugging)
#  -O1                  defines optimization level
#  -g                   include debug information on compilation
#  -s                   strip unnecessary data from build -> do not use in debug builds
#  -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)
#  -D_DEFAULT_SOURCE    use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
#  -ftime-report        Print   Compiling Elapsed time 
CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces 
 
ifeq ($(BUILD_MODE),DEBUG)
    CFLAGS += -g -O0
else
    CFLAGS += -s -O1
endif
 
        CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data
        # ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
        # CFLAGS += $(ROOT_DIR)/Assets/DKIcon.png
 
# Define include paths for required headers
# NOTE: Several external required libraries (stb and others)
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external
ifneq ($(wildcard /opt/homebrew/include/.*),)
    INCLUDE_PATHS += -I/opt/homebrew/include
endif

나. C++ 버전의 Makefile

컴파일러와 플래그만 C++에 맞게 바꿔주면 된다. 즉 다음 부분만 바꿔 주면 된다.

# Define default C compiler: gcc
# NOTE: define g++ compiler if using C++
CC = g++
 
CFLAGS += -Wall -std=c++14 -D_DEFAULT_SOURCE -Wno-missing-braces 

tasks.json

.vscode 하위 폴더에는 tasks.json 파일이 있다.

여기에는 컴파일러가 만드는 어셈블러파일, 즉 objs가 뭘 근거로 할지를 설정해 줄 수 있다.

c 프로젝트에서는 “*.c”이다. 이를 “*.cpp”로 바꿔주면 된다.

다음과 같이 말이다.

            "windows": {
                "command": "C:/raylib/w64devkit/bin/mingw32-make.exe",
                "args": [
                    "RAYLIB_PATH=C:/raylib/raylib",
                    "PROJECT_NAME=${fileBasenameNoExtension}",
                    "OBJS=*.cpp",
                    "B

템플릿 파일들

기존 템플릿 파일을 참조하는게 가장 손쉽긴 하다.

c 버전은 한글폰트 사용 라이브러리를 이용하면 되고,

c++ 버전은 내가 만들어 둔 강좌 중 아무 프로젝트나 가져와서 지우고 새롭게 만들면 된다.

다국어 지원하기가 가장 최근 프로젝트이다.

더보기

이제 실제로 게임을 만들어보자

Raylib로 Pong게임 만들기

C++와 Raylib로 플래피버드 만들기를 읽어보자

로그인하면 댓글을 남길 수 있습니다.

raylib/raylib_를_cpp로_vs_code_에서_사용하기.txt · 마지막으로 수정됨: 2023/11/20 00:27 저자 이거니맨